我在我的程序中使用了这段代码:
def insert(self, table, params):
keys = ', '.join(params.keys())
values = params.values()
query = f"INSERT INTO songs ({keys}) VALUES (?, ?);"
print(keys)
print(query)
print(values)
self.cur.execute(query , values)
self.conn.commit()
return self.cur.lastrowid
哪个打印
name, filehash
INSERT INTO songs (name, filehash) VALUES (?, ?);
dict_values(['testaudio8.mp3',
'BA614A989B7BCF44E38D00EEFFE96F2D8BD6677D'])
但返回错误:
self.cur.execute(query , values)
ValueError: parameters are of unsupported type
我想将 dict_values 中的值插入到问号中,但出现错误。有人可以帮忙吗?
最佳答案
你需要做的是
# skip a few connect code etc
cur = con.cursor
values = ("nameToInsert", "fileHash") # <-- Tuple
cur.execute("INSERT INTO songs (name, filehash) VALUES (?, ?)", values)
此外,如果您只有一个值,则需要像这样传递它:
value = ("onlyValue", ) # see the ,
否则不行。
关于python - SQLite 值错误 : parameters are of unsupported type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66140957/