在查询函数中传递%s时出现问题

时间:2018-10-21 18:54:32

标签: python postgresql function psycopg2

我具有以下函数,该函数在PostgreSQL数据库上执行查询:

def execute_query(query):
    con, cur = connect_to_db()
    cur.execute(query)
    con.commit()
    con.close()

当我尝试提交包含%s的查询时,%s被视为附加参数,这会产生以下错误:

  

TypeError:execute_query()接受1个位置参数,但给出了2个

如何在不产生此错误的情况下包含%s?样本:

execute_query( """ DELETE FROM table WHERE column = %s """, [x[0]])

1 个答案:

答案 0 :(得分:1)

您只需要接受一个额外的参数...

def execute_query(query, args):
    con, cur = connect_to_db()
    cur.execute(query,args)
    con.commit()
    con.close()

尽管您还应该研究args和kwargs并解压缩