代码之家  ›  专栏  ›  技术社区  ›  Harikrishna

在python中将列表中的项传递到sql查询

  •  0
  • Harikrishna  · 技术社区  · 6 年前
    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”参数中?

    1 回复  |  直到 6 年前
        1
  •  0
  •   JQadrad    6 年前

    您应该将列表转换为字符串。我想通过一个 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)})