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.
没有评论:
发表评论