【问题标题】:Problem passing %s within a query function在查询函数中传递 %s 时出现问题
【发布时间】:2018-10-21 18:54:31
【问题描述】:

我有以下在 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]])

【问题讨论】:

标签: python postgresql function psycopg2


【解决方案1】:

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

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

尽管您还应该查看 args 和 kwargs 以及解包

【讨论】:

  • 谢谢,我试过了,但它没有用,但由于某种原因它现在似乎可以工作了..
猜你喜欢
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-08
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
相关资源
最近更新 更多