对非类型TypeError进行筛选后出现Python错误:“非类型”类型的参数不可编辑

2024-10-01 05:01:05 发布

您现在位置:Python中文网/ 问答频道 /正文

错误消息是:

File "/workspace/explanation.py", line 231, in function~~~
    while 'error' in returnVal:
TypeError: argument of type 'NoneType' is not iterable

我的代码是:

#function(~~~) : Get DictionaryType value from server
#Occasionally, the server may return NoneType
returnVal = function(~~~)
if returnVal is not None:
   while 'error' in returnVal:
      ....

我使用了一个条件语句来过滤None,但我不知道为什么在下一句中它被称为NoneType Error。 为什么我的代码中会出现错误? 请帮忙

* 错误不会从循环开始出现,而是在程序正常运行且经过相当长时间后突然出现。 而且,由于我的程序的整个代码顺序地进行,所以不能在中间改变值。所以这很令人沮丧


Tags: 代码in程序none消息serveris错误
2条回答

请记住while条件会被检查多次。正如@CharlyRoch的评论中提到的,循环体(您没有向我们展示)在某个点上必须包含returnVal = None。解决方法是确保不将None赋值给returnVal,并确保它继续引用某个iterable

您的代码应更改如下:

while returnVal and 'error' in returnVal:
   ...

通过这种方式,您可以确保returnVal的计算结果为True(因此没有None值)

相关问题 更多 >