TypeError:参数1必须是字符串或unicode对象:改为get-tuple



我想用psycopg2将数据插入postgresql。

我的addRecord函数是这样的:

def addRecord(self, val1, val2, val3, val4, val5, val6, val7, val8):
query = """
INSERT INTO stories (
val1, 
val2, 
val3, 
val4, 
val5, 
val6, 
val7, 
val8) 
VALUES(%s, %s, %s, %s, %s, %s,%s, %s)""", (val1, val2, val3, val4,val5, val6,val7,val8)
self.cursor.execute(query)
self.connection.commit()

我把这个定义叫做

db.addRecord("asdasd", "asfasf", "asfasfa", "afasfwqe", "afqwrqwr", "dferqwrqw", "afasf", "afasfasf")

但当我试图插入这些数据时,我会得到这个错误:

TypeError:参数1必须是字符串或unicode对象:get-tuple而是

为什么会出现此错误。我该如何解决这个问题?

query是查询和参数的元组。相反,您应该将参数传递给execute方法:

query = """
INSERT INTO stories (
val1, 
val2, 
val3, 
val4, 
val5, 
val6, 
val7, 
val8) 
VALUES(%s, %s, %s, %s, %s, %s,%s, %s)"""
self.cursor.execute(query, (val1, val2, val3, val4,val5, val6,val7,val8))

最新更新