我只是在问为什么我们在使用 sqlite 构建查询时在变量后使用'","。
我无法对此做出任何回答和解释。我刚刚看到有些人帮助解决其他问题并使用此逗号。
提前感谢。
def search_by_title(title):
conn=sqlite3.connect("lite.db")
cur=conn.cursor()
cur.execute("SELECT * FROM BOOKSTORE WHERE title=?", (title,))
row = cur.fetchone()
conn.close()
return row
因为你的变量必须是类型tuple
。execute
命令需要一个序列作为参数。您需要该逗号来创建tuple
。 否则,它将返回与括号内的表达式类型相同的对象(例如,如果您传递str
对象str
- 如我的第一个示例中所示(。
print(type(("Command")))
>> <class 'str'>
print(type(("Command", )))
>> <class 'tuple'>
因为cursor.execute()
期望查询的参数位于tuple
中。要拥有一个变量元组,您需要在变量后添加一个逗号。
title = "string"
var = (title) # a string
var = (title,) # a tuple with one string element