什么是TypeError: 'NoneType'对象是不可迭代的意思?例子:
for row in data: # Gives TypeError!
print(row)
什么是TypeError: 'NoneType'对象是不可迭代的意思?例子:
for row in data: # Gives TypeError!
print(row)
当前回答
这也取决于你使用的Python版本。看到python 3.6和python 3.8中抛出的不同错误消息,如下所示,这是我的情况下的问题
Python 3.6
(a,b) =无 回溯(最近一次调用): 文件“<stdin>”,第1行,在<模块> 'NoneType'对象不可迭代
Python 3.8
(a,b) =无 回溯(最近一次调用): 文件“<stdin>”,第1行,在<模块> TypeError:不能解包不可迭代的NoneType对象
其他回答
你用这样的参数调用write_file:
write_file(foo, bar)
但是你没有正确地定义'foo',或者你在你的代码中有一个拼写错误,所以它创建了一个新的空变量并传入它。
另一种可能产生这种错误的情况是,当你设置某个值等于函数的返回值时,却忘记实际返回任何值。
例子:
def foo(dict_of_dicts):
for key, row in dict_of_dicts.items():
for key, inner_row in row.items():
Do SomeThing
#Whoops, forgot to return all my stuff
return1, return2, return3 = foo(dict_of_dicts)
这是一个很难发现的错误,因为如果行变量恰好在某个迭代中为None,也会产生错误。发现它的方法是跟踪在最后一行失败,而不是在函数内部。
如果你只从一个函数返回一个变量,我不确定是否会产生错误…我怀疑错误"'NoneType'对象在Python中不可迭代"在这种情况下实际上是在暗示"嘿,我试图遍历返回值并将它们按顺序分配给这三个变量但我只得到None来迭代"
我在数据库里对熊猫犯了这个错误。
此错误的解决方案是在集群中安装库 在这里输入图像描述
表示data的值为None。
这意味着data的值为None。