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

标签 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 语句,我得到了 5 个语句。控制台正在打印 5,但我收到了 TypeError。

我哪里出错了?

最佳答案

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

关于python - 使用python查询sqlite3数据库。 Fetchone() 返回实际值,但 python 返回 TypeError : NoneType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48676505/

相关文章:

mysql - 比较mysql触发器中的字符串

Python:使用递归返回文件的完整路径

python - 用Python中另一个列表中的项目替换满足某些条件的列表元素

mysql - 为什么这个查询对于 70k+ 行真的很慢?

sql - 在 SQL "IN"子句中使用元组

mysql - SQL 计算多列和多行的特定值

python - 如何在 Windows 中从命令行启动atom

python - 尝试对 python httplib 中无法访问的网络进行套接字操作

Mysql:从两个表中选择数据,其中电子邮件地址列在两个表中都匹配

android - JSON 解析数据未显示在 ListFragment 中