python - 有没有办法用 Python 过滤 JSON 数据
问题描述
我正在使用 PRTG HTTP API 来提取传感器信息,我的目标是过滤具有此值的传感器
<status>Down</status>
到目前为止,我已经阅读了 Stack 和 Google 搜索中的很多参考资料,但我无法应用这些解决方案,所以粘贴我尝试过的所有代码都是徒劳的,但对我来说更有意义的是这个一
JSON的结构是这样的
{
"prtg-version": "19.1.49.1966",
"treesize": 17701,
"status%3Ddown": [
{
"group": "SOME GROUP",
"device": "SOME SWITCH",
"sensor": "Uptime",
"status": "Down",
"status_raw": 5
},
{
"group": "SOME GROUP",
"device": "SOME SWITCH",
"sensor": "System Health Memory",
"status": "Up",
"status_raw": 3
},
]
}
现在这里是代码
import json
import requests
url = "https://prtg.c3ntro.com/api/table.jsoncontent=status=down&username=usr&passhash=hash&count=100"
response = requests.get(url)
data = response.json()
d = data
result_dict = [d for d in data['status%3Ddown'] if d['status'] == 'Down']
print(result_dict)
#Code has been fixed and now it works
现在只打印出 Down 状态传感器
解决方案
列表理解应该起作用:
[d for d in data['status%3Ddown'] if d['status'] == 'Down']
"status%3Ddown"
返回列表中包含的所有条目"status": "Down"
:
[{'device': 'SOME SWITCH',
'group': 'SOME GROUP',
'sensor': 'Uptime',
'status': 'Down',
'status_raw': 5}]
推荐阅读
- python - Python Dataframe删除特定值出现超过10次的行
- c# - 访问 System.Action 中的对象属性
- git - 如何找到请求合并到的分支?
- angular - Angular Observables 取消订阅异步管道
- ios - Swift:无法将我的值放入标签(可选问题)
- python - 将参数传递给 Spyder 以进行调试文件
- android - Rx 异常处理失败
- mysql - TeamCity 无法连接在 Docker 中运行的 MySQL
- java - 引起:com.datastax.driver.core.exceptions.InvalidQueryException:日期(25)的预期长度为 8 或 0 字节
- r - 如何将机器学习模型快速更新为 R 中的新训练数据?