postgres 查询:并非所有参数都在字符串格式化期间转换

postgres query: not all arguments converted during string formatting

这是我的代码:

conn = psycopg2.connect("dbname='test1' user='postgres' host='localhost' password='123'")
cur = conn.cursor()
query = "INSERT INTO product_info (product_name) VALUES (%s);"
data = ("ss")
cur.execute(query, data)

conn.commit()

我不确定为什么会收到错误消息:在字符串格式化期间并非所有参数都已转换,我无法弄清楚我的语法错误

发生的事情是字符串 ss 被认为是两个参数。如果你把数据做成一个元组,你就可以解决这个问题。只需要更改一个逗号即可。

conn = psycopg2.connect("dbname='test1' user='postgres' host='localhost' password='123'")
cur = conn.cursor()
query = "INSERT INTO product_info (product_name) VALUES (%s);"
data = ("ss",) # make this a tuple!
cur.execute(query, data)
conn.commit()