Sqlite3 Python 参数化查询错误绑定参数 0 - 可能不支持的类型

Sqlite3 Python Parameterized Query Error binding parameter 0 - probably unsupported type

提问人:lakerirish 提问时间:2/6/2022 更新时间:2/6/2022 访问量:55

问:

我收到查询的错误(错误绑定参数 0 - 可能不支持的类型):

parameterized_query = cur.execute('SELECT courses.dept, courses.course_num, courses.title FROM courses JOIN catalog_index ON catalog_index.course_id = courses.course_id WHERE catalog_index.word IN (?)', arg)

哪里

arg = (('computer', 'science', 'economics'),)

我很困惑,因为我正在传递一个元组,所以我希望这应该有效,但事实并非如此。

Python SQL 参数传递

评论

0赞 Mankind_2000 2/6/2022
arg = ("""'computer', 'science', 'economics'""", )应该在这里做

答:

0赞 j c 2/6/2022 #1

这个怎么样:

arg = ('computer', 'science', 'economics')
sql = '''SELECT courses.dept
, courses.course_num
, courses.title 
FROM courses 
JOIN catalog_index 
ON catalog_index.course_id = courses.course_id 
WHERE catalog_index.word IN (?,?,?);'''
parameterized_query = cur.execute(sql, arg)

我的建议的变化是:

  1. 将 arg 设置为单个元组(它是帖子中的嵌套元组)
  2. 在准备好的 sql 语句中使用 3 个问号(在您的帖子中是一个问号)。

评论

0赞 Community 2/6/2022
正如目前所写的那样,你的答案尚不清楚。请编辑以添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以在帮助中心找到有关如何写出好答案的更多信息。