Python 循环10小时后出现按键错误
经过15秒的循环后,我在下面的脚本中得到了下面的KeyError,它完美地工作了10个小时左右。为什么密钥错误每15秒运行一次,每10小时只出现一次 错误:Python 循环10小时后出现按键错误,python,keyerror,Python,Keyerror,经过15秒的循环后,我在下面的脚本中得到了下面的KeyError,它完美地工作了10个小时左右。为什么密钥错误每15秒运行一次,每10小时只出现一次 错误: Traceback (most recent call last): File "C:\venderFix.py", line 33, in <module> if j['results']: KeyError: 'results' 只是因为在那次迭代中,dict中没有键results 测试键是否在字典中的正
Traceback (most recent call last):
File "C:\venderFix.py", line 33, in <module>
if j['results']:
KeyError: 'results'
只是因为在那次迭代中,
dict
中没有键results
测试键是否在字典中的正确方法是:
if 'result' in j:
....
如果还要检查其值是否不是None
或任何其他错误值,则:
if 'result' in j and j['result']:
...
另一个与您正在调用服务相关的假设是,服务器不时会返回一条错误消息
如果发生这种情况,JSON结构可能不是您所期望的,您应该检查文档是否对此有任何说明并进行相应处理。使用
j.get('results',False)
会更安全,为什么每10小时一次?因为服务器发送错误响应平均需要很长时间。在except块中打印有问题的JSON;我打赌是malformedI也有同样的问题,在我需要使用dict之前,dict没有被填充。上述解决方案非常有效。谢谢@pcalcao;)
if 'result' in j and j['result']:
...