Is there a way with pandas to use read_sql() with an sql-statement, that takes multiple variables?(对于 pandas 来说,有没有办法将Read_SQL()与接受多个变量的SQL语句一起使用?)
本文介绍了对于 pandas 来说,有没有办法将Read_SQL()与接受多个变量的SQL语句一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我代码的一部分。我已经有了一个包含值的数据库,需要根据该数据框中的值创建一个新的数据框(目前这些值只有12&;13,存储在header_row_ids
变量中)。
当我运行该脚本时,收到以下错误消息:
pandas.io.sql.DatabaseError:对SQL‘SELECT*FROM dbo.TestDetails WHERE ID IN(?,?),(13,12)’:(‘07002’,‘[07002][Microsoft][ODBC SQL Server驱动程序]计数字段不正确或语法错误’)执行失败
有人能帮我解决这个问题吗?我将非常感激。
import pypyodbc
import pandas
sourceConnection = pypyodbc.connect(
self.sourceDriver +
self.sourceServer +
self.sourceDatabase
)
placeholders = ",".join("?" * (len(self.header_row_ids)))
sql_source_detail_select = "SELECT * FROM dbo.TestDetails WHERE Id IN (%s)" % placeholders
header_row_ids = [12, 13]
header_row_ids_string = str(self.header_row_ids).strip('[]')
new_sql_source_detail_select = sql_source_detail_select + ", (" + header_row_ids_string + ")"
dataframe = pandas.read_sql(new_sql_source_detail_select, sourceConnection)
推荐答案
read_sql接受可用于传递参数值的params
参数:
# header_row_ids = [12, 13]
# sql = "SELECT * FROM dbo.TestDetails WHERE Id IN (?,?)"
dataframe = pandas.read_sql(sql, sourceConnection, params=header_row_ids)
这篇关于对于 pandas 来说,有没有办法将Read_SQL()与接受多个变量的SQL语句一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:对于 pandas 来说,有没有办法将Read_SQL()与接受多个变量的SQL语句一起使用?


基础教程推荐
猜你喜欢
- 在同一图形上绘制Bokeh的烛台和音量条 2022-01-01
- 包装空间模型 2022-01-01
- 求两个直方图的卷积 2022-01-01
- 在Python中从Azure BLOB存储中读取文件 2022-01-01
- 无法导入 Pytorch [WinError 126] 找不到指定的模块 2022-01-01
- PermissionError: pip 从 8.1.1 升级到 8.1.2 2022-01-01
- 修改列表中的数据帧不起作用 2022-01-01
- 使用大型矩阵时禁止 Pycharm 输出中的自动换行符 2022-01-01
- PANDA VALUE_COUNTS包含GROUP BY之前的所有值 2022-01-01
- Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙? 2022-01-01