【发布时间】:2021-02-10 16:32:10
【问题描述】:
我在我的程序中使用了这段代码:
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 中的值插入问号,但出现错误。有人可以帮忙吗?
【问题讨论】:
-
如果包含整个代码更容易获得帮助。也许
query = f"INSERT INTO songs ({keys}) VALUES (?, ?);", ( print(keys), print(query), print(values)) -
您应该使用元组,而不是使用值列表并将它们传递给“self.cur.execute(query, values)”。
-
我放 print 的唯一原因是让大家知道每个变量的值是什么。使用元组会导致 ValueError: parameters must be str。基本上我说的是忽略打印,我只想在问号所在的地方插入 dict_values。