【问题标题】:Using python to query sqlite3 database. Fetchone() returns real value but python returns a TypeError: NoneType使用python查询sqlite3数据库。 Fetchone() 返回实际值,但 python 返回 TypeError: NoneType
【发布时间】:2018-02-08 02:26:49
【问题描述】:

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

我在哪里做错了?

【问题讨论】:

    标签: python mysql sql sqlite


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多