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