使用Pandas read_sql执行SQL查询时触发sqlalchemy参数错误
问题解决:sqlalchemy.exc.ArgumentError 参数格式错误
- 报错原因不是不再支持
?作为占位符,而是你传递的params参数格式不对。 - Python里
(id)只是单个变量的括号包裹,并非元组;单个元素的元组必须加逗号,写成(id,)才符合序列要求。 - 修正后的代码:
id = 1 engine = sql.create_engine('mssql+pyodbc://{}:{}@{}/{}?driver={}'.format(USERNAME, PASSWORD,SERVER_NAME, DATABASE_NAME,driver)) df = pd.read_sql('SELECT [x_id] FROM tableName WHERE [x_id] = ?', engine, params=(id,))
- 也可以用列表格式传递参数,比如
params=[id],同样能正常生效。
内容的提问来源于stack exchange,提问作者foxbundle
相关产品推荐
相关产品推荐

