我有以下代码:

cur1.execute("SELECT * FROM consommation WHERE zone=? AND date=?",(zone,date_p))
if cur1.fetchone() is not None:
    abcisses+=(cur1.fetchone()[0][11:13]+'h',)

但是当我运行它时,我有一个错误: TypeError: 'NoneType' object has no attribute '__getitem__' ,而 cur1.fetchone 不为空。所以我不明白为什么它不起作用。有人知道为什么吗?

最佳答案

fetchone 获取数据并更改 cursor 对象的状态,即如果只有一行要获取,则下次调用 fetchone 将返回 None

尝试下一个:

cur1.execute("SELECT * FROM consommation WHERE zone=? AND date=?", (zone, date_p))
res = cur1.fetchone()
if res:
    abcisses += (res[0][11:13] + 'h',)

关于python - TypeError : 'NoneType' object has no attribute '__getitem__' whereas cur. fetchone 不是 None,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17806529/

10-11 08:00