我是pylint的新手。我通过pylint运行以下内容并在尝试迭代字典时遇到错误:
"ID:maybe-no-member Instance of 'bool' has no 'iteritems' member (but some types could not be
inferred)"
这是一个Flask应用程序,我通过AJAX将json编码的字典传递给'/ my_endpoint /'。然后,我需要遍历该字典并做一些事情。
@app.route('/my_endpoint/')
def my_endpoint():
"""My Description"""
try:
my_params = json.loads(request.args.get('names'))
except TypeError:
my_params = None
if my_params is not None:
for key,value in my_params.iteritems(): # error occurs here
...
尝试谷歌错误不会导致任何描述错误的含义或任何解决方案。谢谢!
答案 0 :(得分:3)
我怀疑(这是一个疯狂的猜测)Pylint抱怨,因为json.loads
可以返回bool,如果要求解码像"false"
这样的字符串。而生成的bool实际上没有名为iteritems
的方法。
但是后来既不会是字符串,也不是列表或数字,所以我不知道为什么它会选择bool。也许是因为它首先在所有可能的类型中按字母顺序排列。
明确的isinstance(my_params, dict)
检查是否让它开心?