python - 在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,我只需要结果谢谢
解决方案
检查密钥
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
推荐阅读
- java - 带有 Spring Security 过滤器链、重定向循环的 Wicket 授权
- xml - 将 innerxml 解组为字符串指针
- c++ - Cocos2d-x 着色器场景过渡效果在 iOS 上无法正常工作
- c# - 自定义 NavigationView 面板以包含图像 UWP
- bash - 如何迭代bash中的分隔值
- ms-access - MS访问:按下按钮时如何从组合框中删除所选项目?
- java - 写入资源文件java?
- javascript - ng-click 不触发功能
- javascript - WebRTC:两个客户端可以同时相互发送信号吗
- javascript - reactjs 使用酶进行测试,TypeError:无法读取 null 的属性“appendChild”