python - 将列表中的项目传递给python中的sql查询
问题描述
import mysql.connector
import pandas as pd
testlist=['abc', 'cde', 'def']
testvar='phone'
query = "select column1,column2, column3 from testtable where column4=%(var1)s and column5 in %(listitem)s "
content=pd.read_sql(query, con=mydb, params= {"var1":testvar, "listitem":testlist})
错误
Failed processing pyformat-parameters; Python 'list' cannot be converted to a MySQL type
我们如何将项目列表传递给“IN”参数?
解决方案
您应该将列表转换为字符串。我猜通过将 a 传递list()
给listitem
查询无法创建并引发此错误。
import mysql.connector
import pandas as pd
testlist=['abc', 'cde', 'def']
testvar='phone'
query = "select column1,column2, column3 from testtable where column4=%(var1)s and column5 in %(listitem)s "
content=pd.read_sql(query, con=mydb, params= {"var1":testvar, "listitem": str(testlist)})
推荐阅读
- javascript - 在网络服务器上使用套接字 io
- javascript - 如何将此 github 的内容实现到我的网站中?我对javascript不太了解
- compiler-errors - 在 Jack 语言中编译错误“预期 [或 =”。错误在哪里,为什么?
- matlab - 执行最小二乘分析时如何添加新的数字列?
- firebase - 将 Google Firebase Golang 库(例如 IAP 和 Firestore)用于非管理员客户端应用程序
- javascript - Ajax 方法,未定义变量,两种可能的解决方案?
- r - R在for循环中使用dplyr group_by/ sum,输出为连接列表
- regex - 在 mongodb 聚合中使用 $expr 内的 $regex
- react-native - 应用过滤器时正确的搜索语句
- python - 读取 CSV 时用 0 填充 NaN 不适用于 Dataframe