我正在尝试从数据库中获取最大的 session_id,以便我可以使用递增的 session_id 记录新值。我正在使用它来将数据库中的记录分组在一起。
conn = sqlite3.connect('../data.db')
c = conn.cursor()
session = c.execute("SELECT session_id FROM data WHERE session_id=(SELECT MAX(session_id) FROM data)")
print session
print session.fetchone()[0]
if session.fetchone()[0] == 5:
print "HERE"
return session.fetchone()[0]
这是终端打印出来的内容。
sqlite3.Cursor object at 0x7f43cd2f2a40
5
...
if session.fetchone()[0] == 5:
TypeError: 'NoneType' object has no attribute '__getitem__'
我在终端中仔细检查了我的 SQL select 语句,我得到了 5 个语句。控制台正在打印 5,但我收到了 TypeError。
我哪里出错了?
最佳答案
我们只能迭代sqlite3.Cursor
的获取结果一次。您应该将 session.fetchone()
的结果存储到一个对象中,然后检查该对象的值
关于python - 使用python查询sqlite3数据库。 Fetchone() 返回实际值,但 python 返回 TypeError : NoneType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48676505/