我想使用 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: argument 1 must be a string or unicode object: got tuple 代替
为什么我收到这个错误。我该如何解决这个问题?
答案 0 :(得分:1)
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))