我正在使用sqlite3,并试图通过使用行的标题来获取oid,然后尝试使用该oid来更新表中的列。
allOID是一个元组,当我打印它时,我得到的是:
>>> <class 'tuple'>
>>> [(1,)]
我正试图从这个元组中取出整数,但逗号把它弄丢了,我似乎找不到。
以下是当前使用的所有代码:
c.execute("""SELECT oid FROM books
WHERE title = :title""",
{
'title': title
})
allOID = c.fetchall()
print(type(allOID[0]))
print(allOID)
c.execute("SELECT * FROM books")
c.execute("""UPDATE books SET
rented = :rented
WHERE oid = :oid""",
{
'rented': rentedVar,
'oid': allOID[0]
})
非常感谢您的帮助和意见!
逗号只是表示它是一个包含单个元素的元组。
使用allOID[0][0]
访问它。
allOID[0]
从结果列表中获得元组,使用allOID[0][0]
更进一步,获得元组的第一个元素。
有关更多信息,请参阅文档:
空元组由一对空括号构成;一个包含一个项的元组是通过在值后面加逗号来构造的(用括号括一个值是不够的(。丑陋,但有效。