我在我的程序中使用了这段代码:
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
Run Code Online (Sandbox Code Playgroud)
哪个打印
name, filehash
INSERT INTO songs (name, filehash) VALUES (?, ?);
dict_values(['testaudio8.mp3',
'BA614A989B7BCF44E38D00EEFFE96F2D8BD6677D'])
Run Code Online (Sandbox Code Playgroud)
但返回错误:
self.cur.execute(query , values)
ValueError: parameters are of unsupported type
Run Code Online (Sandbox Code Playgroud)
我想将 dict_values 中的值插入问号中,但出现错误。有人可以帮忙吗?
你需要做的是
# skip a few connect code etc
cur = con.cursor
values = ("nameToInsert", "fileHash") # <-- Tuple
cur.execute("INSERT INTO songs (name, filehash) VALUES (?, ?)", values)
Run Code Online (Sandbox Code Playgroud)
另外,如果您只有一个值,则需要像这样传递它:
value = ("onlyValue", ) # see the ,
Run Code Online (Sandbox Code Playgroud)
否则就行不通。
| 归档时间: |
|
| 查看次数: |
3019 次 |
| 最近记录: |