gpt4 book ai didi

python - DB-API SQLite INSERT 语句在 Python 2.7 中抛出 InterfaceError

转载 作者:行者123 更新时间:2023-12-01 06:12:53 25 4
gpt4 key购买 nike

给定我创建的 SQLite 表,相关字段的类型为 TEXT ,以下失败:
hsh = hashlib.sha1("".join(some_list)).hexdigest()<br/>
db_setup(hsh)

我收到错误:
InterfaceError: Error binding parameter 2 - probably unsupported type.

def db_setup(my_hash, oavals)
to_insert = (my_hash,)
('INSERT INTO position VALUES \
(null, ?, ?, null, ?, ?, ?, ?, ?)',(0, 0, to_insert,
oavals["a"], oavals["b"],
oavals["c"], oavals["d"]))

如果我在 57 def 中替换手动 int 或字符串(例如 "hello"to_insertdb_setup ,它工作得很好,这让我相信它在哈希上绊倒,对于某些人来说原因。我觉得好像我在这里遗漏了一些明显的东西。

<小时/>

表架构:
'CREATE TABLE position \<br/>
(id INTEGER PRIMARY KEY, position INTEGER, displayline INTEGER, \<br/>
header TEXT, digest TEXT, conkey TEXT, consecret TEXT, \<br/>
acckey TEXT, accsecret TEXT)'

最佳答案

失败是因为 to_insert 是一个元组,而不是您要插入的值。

尝试将第一行更改为:

to_insert = my_hash

或者更好的是,只需将 my_hash 放入参数列表中即可。

这是一个例子:

>>> hsh = '49cb6536afc7e4a4b3a94eb493aae4d52b8f6a60'
>>> conn = sqlite3.connect(':memory:')
>>> c = conn.cursor()
>>> c.execute("CREATE TABLE t (i TEXT);")
>>> c.execute("INSERT INTO t VALUES (?)", (hsh,)) # tuple works
<sqlite3.Cursor object at 0x011A35E0>
>>> c.execute("INSERT INTO t VALUES (?)", ((123,),)) # tuple within tuple doesn't
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.

关于python - DB-API SQLite INSERT 语句在 Python 2.7 中抛出 InterfaceError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4765614/

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