2021年4月1日星期四

Error fromatting parameter for Pandas read_sql_query

How do I fix this error on passing a string parameter into pd.read_sql_query? Using Python 2.7.

table = 'mytable1'  query = (          "SELECT * "          "FROM ? "      )  df = pd.read_sql_query(sql=query, con=conn, params=(table))    pandas.io.sql.DatabaseError: Execution failed on sql 'SELECT * FROM ? ': near "?": syntax error  

I have tried replacing ? with % and %s but it returns the same error.

The following equality example works as expected:

query = (          "SELECT * "          "FROM mytable1 "          "WHERE name = ? "      )  df = pd.read_sql_query(sql=query, con=conn, params=('cat',))  

Note that the comma in params appears to be required, otherwise this error is returned: Incorrect number of bindings supplied. The current statement uses 1, and there are 7 supplied.

I have also tried params=(table,) in my problem but no luck. I know that alternatively I can do this with "FROM '{t}' ").format(t=table), but I would like to understand how to use Pandas' built-in parameters option.

https://stackoverflow.com/questions/66913119/error-fromatting-parameter-for-pandas-read-sql-query April 02, 2021 at 08:33AM

没有评论:

发表评论