Python/pg8000 WHERE IN语句

Python/pg8000 WHERE IN语句,python,where-in,python-db-api,pg8000,Python,Where In,Python Db Api,Pg8000,通过SQL语句中的%s使元组(名称)可用的正确方法是什么 names = ('David', 'Isaac') sql = 'SELECT * from names WHERE name IN %s' cur.execute(sql,(names,)) 中的响应适用于psycopg2,但不适用于pg8000 谢谢 生成适当数量的占位符。在pg8000中 在查询字符串中插入占位符 执行SQL注入安全查询 像这样: sql = 'SELECT * from names WHERE name IN

通过SQL语句中的%s使元组(名称)可用的正确方法是什么

names = ('David', 'Isaac')
sql = 'SELECT * from names WHERE name IN %s'
cur.execute(sql,(names,))
中的响应适用于psycopg2,但不适用于pg8000

谢谢

  • 生成适当数量的占位符。在pg8000中
  • 在查询字符串中插入占位符
  • 执行SQL注入安全查询
  • 像这样:

    sql = 'SELECT * from names WHERE name IN ({})'.format( ','.join(['%s']*len(names)) )
    # results in -> 'SELECT * from names WHERE name IN (%s,%s)'
    cur.execute(sql,(names,))