Other reasons for sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type

Other reasons for sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type

我正在使用此代码检查我的 sqlite 数据库中是否存在给定的 transactionid。

print((transaction.transactionid,))
print(type(transaction.transactionid))
c.execute("SELECT EXISTS(SELECT transactionid FROM Transactions WHERE transactionid=?);", 
          (transaction.transactionid,))
self.dbconn.commit()
transaction_exists, = c.fetchone()
print(transaction_exists)

第二次迭代总是失败并出现此错误:

File "RtMetaMaster.py", line 182, in sync_ticket_to_db (transaction.transactionid,)) sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.

打印语句的输出:

('626007',)
<class 'str'>
0    
('625952',)
<class 'str'>
Traceback (most recent call last):
  [..]
  File "RtMetaMaster.py", line 182, in sync_ticket_to_db
    (transaction.transactionid,))
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.

两次 transactionid 都是 class 'str' 类型,但不知何故第二次失败了。还有哪些错误可能导致 "Error binding parameter"?

我通过在每个 c.execute 调用后添加一个 self.dbconn.commit() 来解决它。可能有更好的解决方案。