我一直在尝试使用不同的输入变量来运行查询,其中一个是列表。
这些变量看起来像这样:
age = 25
male = 'x'
value1 = 1
list = [1,2,3,4,..]
该列表的长度有所不同。
我将其传递给查询:
query = """SELECT * FROM table
WHERE (Gender_male = %(male)s
AND Age_min <= %(age)s AND Age_max >= %(age)s
AND value1 IN ({list})
"""
df = pd.read_sql(query, con = connection, params= {"male":male, "age":age, "list":list}
这给了我以下错误:
处理pyformat参数失败; Python“列表”不能转换为MySQL类型
我还在Binding list to params in Pandas read_sql_query with other params中尝试了建议的解决方案 但这似乎不起作用,因为查询中存在变量。
有没有办法保留变量并检查值是否在列表中?
我正在使用mysql.connector
非常感谢您!