使用python查询sqlite3数据库。 Fetchone()返回实数值,但python返回TypeError:NoneType

时间:2018-02-08 02:26:49

标签: python mysql sql sqlite

我正在尝试从我的数据库中获取最大的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语句,我在那里得到了五个。控制台正在打印五个,但我得到一个TypeError。

我在哪里犯了错误?

1 个答案:

答案 0 :(得分:0)

我们只能迭代一次sqlite3.Cursor的获取结果。您应该将session.fetchone()的结果存储到对象,然后检查对象的值