gpt4 book ai didi

python - sqlite 游标 fetchone() 返回 'NoneType' ?

转载 作者:行者123 更新时间:2023-11-30 22:24:07 25 4
gpt4 key购买 nike

我想构建一个函数,如果两个分数 scor1scor2 不都是 0,则返回所有表中的最低行数:

def mini(tablelist):
mini = 1000
for table in tablelist:
c.execute("SELECT numar_par FROM " + table + "")
c_min = len(c.fetchall())

if c_min is None:
mini = 0
else:
c.execute("SELECT scor1 FROM " + table + " ORDER BY numar_par DESC LIMIT 1")
print("this is fetchone:",c.fetchone(),'from table: ',table)
scor1 = c.fetchone()[0]
c.execute("SELECT scor2 FROM " + table + " ORDER BY numar_par DESC LIMIT 1")
scor2 = c.fetchone()[0]
sum = int(scor1) + int(scor2)
if c_min < mini and sum >0:
mini = c_min
return mini

这是打印语句的结果:

this is fetchone: ('0',) from table:  a

这是错误:

File "D:\pariuri\python\Pycharm test1\Test11 peste 0.5\functii.py", line 181, in mini
scor1 = c.fetchone()[0]
TypeError: 'NoneType' object is not subscriptable

最佳答案

使用 execute 执行查询后,查询结果将在查询结果集中提供,然后您可以使用 c.fetch* 方法对其进行迭代。

这里需要注意的是,fetch*迭代结果集,耗尽结果集。它的工作原理类似于生成器,您只能迭代一次。

它的工作原理是这样的。想象一个指针指向要查询的结果集中的下一行。运行 c.execute 会得到如下所示的结果集 -

 head
|____ Result 1
Result 2
.
.
Result N

调用c.fetchone后,head将返回下一行,并前进一行 -

 head    Result 1 (returned)
|____ Result 2
.
.
Result N

由于表中只有一行,对 fetchone 的另一次调用将返回一个空列表。

关于python - sqlite 游标 fetchone() 返回 'NoneType' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47905913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com