gpt4 book ai didi

python - 为什么 fetchone()[0] 返回 'Nonetype'

转载 作者:行者123 更新时间:2023-11-29 12:26:50 24 4
gpt4 key购买 nike

我试图从 employee 表中存储 employeeid 值,以获取我在 Python 上使用以下命令的特定行:

cursor.execute("SELECT*FROM EMPLOYEE WHERE first_name = %s AND last_name = %s", (employee['firstname'],employee['lastname']))

其次是

employeeid=cursor.fetchone()[0]

为什么 employeeid 有值 Nonetype?

最佳答案

fetchone()[0] 返回 None 的原因几乎可以肯定是与 WHERE 子句匹配的第一行中的第一列具有一个 NULL 值。

由于您只是在执行 SELECT * 而不是提供列列表,因此第一列可以是表中的任何列。如果您特别想要 employeeid 列,您应该 SELECT employeeid

另外,由于您没有使用 ORDER BY,因此第一行可以是任何匹配的行。因此,请确保没有多行匹配您的 WHERE 子句(除非您期望有)。您可能有一个值为 23 的“好”行,加上另一个值为 NULL 的“坏”行。


正如 StefanPochmann 指出的那样,您也可能没有找到任何行,并且您误解了结果。如果查询未返回任何内容,则 fetchone() 调用将返回 None,或引发异常。在第一种情况下,您的语句会导致类似 TypeError: 'NoneType' object is not subscriptable 的错误,因为 cursor.fetchone()[0] 正在有效地执行 无[0]。在第二种情况下,fetchone 本身的异常可能会在某处提到 NoneType。在这两种情况下, employeeid 都不会像您声称的那样以 NoneType 的值结束,但是如果您没有在正确的位置查找,您可能会以某种方式说服自己它是.

关于python - 为什么 fetchone()[0] 返回 'Nonetype',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30361050/

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