我正在从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()参数必须是字符串,类似字节的对象或数字,而不是'NoneType'
not None
中专门设置if-statement
类型,为什么会出现此错误? None
时,我可以分配预定义的值? 答案 0 :(得分:3)
您可以添加其他测试来检查列表中的第一项是否不是None
,这实际上是您尝试转换为整数的内容:
if current_tact is not None and current_tact[0] is not None:
current_tact = int(current_tact[0])
或使用try-except
块来避免完全测试:
try:
current_tact = int(current_tact[0])
except TypeError:
current_tact = 60