小编Scr*_*urr的帖子

绑定列表到Pandas read_sql_query中的params与其他params

我一直在尝试测试各种方法来运行我的代码.首先,我有这个清单:

member_list = [111,222,333,444,555,...]

我试图将它传递给这个查询:

query = pd.read_sql_query(
"""
select member id
    ,yearmonth
from queried_table
where yearmonth between ? and ?
    and member_id in ?
""", db2conn, params = [201601, 201603, member_list])
Run Code Online (Sandbox Code Playgroud)

但是,我收到的错误是:

'参数类型无效.param-index = 2 param-type = list','HY105'

所以我环顾四周并尝试使用格式化的字符串:

query = pd.read_sql_query(
"""
select member id
    ,yearmonth
from queried_table
where yearmonth between ? and ?
    and member_id in (%s)
""" % ','.join(['?']*len(member_list), db2conn, params = [201601, 201603, tuple(member_list)])
Run Code Online (Sandbox Code Playgroud)

现在,我收到错误:

'SQL包含18622参数标记,但提供了3个参数','HY000'

因为它希望填充?格式化字符串中的所有占位符.

所以,最终,有没有办法以某种方式评估列表并传递每个单独的元素绑定到?或是否有另一种方法,我可以使用它来使其工作?

顺便说一下,我pyodbc用作连接器. …

python pyodbc pandas

7
推荐指数
2
解决办法
2万
查看次数

标签 统计

pandas ×1

pyodbc ×1

python ×1