gpt4 book ai didi

python - SQLite executemany 的问题

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:56 26 4
gpt4 key购买 nike

我在下面的代码中找不到我的错误。当它运行时,出现类型错误:cur.executemany(sql % itr.next()) => 'function takes exactly 2 arguments (1 given) ,

import sqlite3
con = sqlite3.connect('test.sqlite')
cur = con.cursor()
cur.execute("create table IF NOT EXISTS fred (dat)")

def newSave(className, fields, objData):
sets = []
itr = iter(objData)
if len(fields) == 1:
sets.append( ':' + fields[0])
else:
for name in fields:
sets.append( ':' + name)
if len(sets)== 1:
colNames = sets[0]
else:
colNames = ', '.join(sets)
sql = " '''insert into %s (%s) values(%%s)'''," % (className, colNames)
print itr.next()
cur.executemany(sql % itr.next())
con.commit()

if __name__=='__main__':
newSave('fred', ['dat'], [{'dat':1}, {'dat':2}, { 'dat':3}, {'dat':4}])

我会很感激你的想法。

最佳答案

正如它所说,executemany 有两个参数。不要自己用 % 插入字符串值,您应该同时传递 sql 和值并让数据库适配器引用它们。

sql = " '''insert into %s (%s) values(%%s)'''," % (className, colNames)
cur.executemany(sql, itr.next())

关于python - SQLite executemany 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1030941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com