[英]How can I assign a variable from a string inside a json dictionary?
这是我从中获取数据的每个资产的 output
我可以轻松访问字典值,
page = json_response["page"].get("number", 0)
但是我如何访问数组的值,我希望能够将每个关键漏洞加起来
这是回报,我试图从漏洞子数组中获取关键、中等、严重的值
{'links': [{}],
'page': {'number': 6, 'size': 10, 'totalPages': 13, 'totalResources': 123},
'resources': [{'addresses': [],
'assessedForPolicies': False,
'assessedForVulnerabilities': True,
'configurations': [],
'databases': [],
'files': [],
'history': [],
'hostName': 'corporate-workstation-1102DC.acme.com',
'hostNames': [],
'id': 282,
'ids': [],
'ip': '182.34.74.202',
'links': [],
'mac': 'AB:12:CD:34:EF:56',
'os': 'Microsoft Windows Server 2008 Enterprise Edition SP1',
'osFingerprint': {},
'rawRiskScore': 31214.3,
'riskScore': 37457.16,
'services': [],
'software': [],
'type': '',
'userGroups': [],
'users': [],
'vulnerabilities': {'critical': 16,
'exploits': 4,
'malwareKits': 0,
'moderate': 3,
'severe': 76,
'total': 95}}]}
你可以像这样阅读vulnerabilities
,
json.loads(json_response)['resources'][0]['vulnerabilities']['critical']
# Out
16
如果你想以你知道的方式提取值而不是使用 json 尝试:
crit_value = json_response["resources"][0]["vulnerabilities"].get("critical", 16)
你解释得不好,但我敢打赌resources
是原始数据中多个字典的列表,你想对所有这些值做一些事情。
vulnerabilities = []
resources = json_response['resources']
for d in resources:
if 'vulnerabilities' in d:
vulnerabilities.append(d['vulnerabilities'])
print(vulnerabilities)
print(sum(x.get('critical', 0) for x in vulnerabilities))
print(sum(x.get('severe', 0) for x in vulnerabilities))
Output:
[{'critical': 16, 'exploits': 4, 'malwareKits': 0, 'moderate': 3, 'severe': 76, 'total': 95}]
16
76
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.