Python 循环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 测试键是否在字典中的正

经过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

测试键是否在字典中的正确方法是:

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']:
    ...