sqlite 的 fetchall 返回 None 而不是空列表

问题描述 投票:0回答:3

根据sqlite3文档

fetchall()
返回一个列表(如果没有行满足搜索条件则为空)。 有时,不可重复,我会得到一个返回值
None
None
表示什么,无法访问数据库? 缺少一张桌子?

python database sqlite
3个回答
4
投票

从简要查看源代码来看,除非内存损坏,否则sqlite3的光标的

fetchall
似乎不可能返回
None
。您一定在做其他事情,从而导致
None


0
投票

fetchall()
返回
[]
fetchone()
返回
None
你确定你不是不小心使用了
fetchone()


0
投票

Thomas Wouters 你是对的.. fetchall() 不返回 None .. 当它找不到与搜索条件匹配的记录时,它会返回一个奇怪的结果.. 它返回 [(None,)] .. 你可以' t 使用通常的“if list is None”对此进行测试..您必须像这样测试这个奇怪的结果:

if list[0][0] == None ..(这将返回 True)

© www.soinside.com 2019 - 2024. All rights reserved.