gpt4 book ai didi

Python 3.6 - 'NoneType' 测试失败

转载 作者:太空宇宙 更新时间:2023-11-03 15:41:57 26 4
gpt4 key购买 nike

我正在阅读 sqlite3数据库并过滤掉 NoneType ,因为我只想要不是 None 的值.我尝试了两种建议的方法 here , 结果相同。这让我认为下面的 if 语句是正确的,但我遗漏了一些更基本的东西。任何建议表示赞赏。

从数据库读取

        conn.commit()
c.execute("SELECT tact FROM LineOEE03 ORDER BY tact DESC LIMIT 1")
current_tact = c.fetchone()

无类型测试

        if current_tact is not None:
current_tact = int(current_tact[0])
else:
current_tact = 60

错误

current_tact = int(current_tact[0])

TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

  • 如果我专门标记 not None,为什么会出现此错误?输入我的 if-statement
  • 执行此操作的正确方法是什么,例如当值为 None 时我可以分配一个预定义的值吗?

最佳答案

您可以添加一个额外的测试来检查列表中的第一项是否不是None,这就是您实际尝试转换为整数的内容:

if current_tact is not None and current_tact[0] is not None:
current_tact = int(current_tact[0])

或者使用 try-except block 来完全避免测试:

try:
current_tact = int(current_tact[0])
except TypeError:
current_tact = 60

关于Python 3.6 - 'NoneType' 测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52070671/

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