首页 > 解决方案 > 在python中使用for in循环解析Json

问题描述

我有以下从 API 解析 JSON 文件的示例代码

for query in r["queries"]:
    print(query["attributes"]["planning_wait_time"])

这给了我结果:

5986
5987
42
0
63
5978
Traceback (most recent call last):
  File "./query_warning.py", line 24, in <module>
    print(query["attributes"]["planning_wait_time"])
KeyError: 'planning_wait_time'

您看到的数字是计划等待时间的正确数字,我只能假设我收到 KeyError 的原因是因为并非我的 JSON 文本中的所有信息都包含计划等待时间。有没有办法绕过错误?如果 JSON 有planning_wait_time,我只需要结果谢谢

标签: pythonjson

解决方案


检查密钥

for q in r["queries"]:
    attrs = q["attributes"]
    if "planning_wait_time" in attrs:
        print(attrs["planning_wait_time"])

或者,如果您可以看到None或想要其他东西,请使用.get()

for q in r["queries"]:
    print(q["attributes"].get("planning_wait_time"))  # You can add a parameter here for a default value 

推荐阅读