This is my get output on each asset im getting data back from
I can access the dictionary values easily,
page = json_response["page"].get("number", 0)
but how doo i access the value of the array, i want to be able to add up each critical vulnerability
this is the return, im trying to get critical, moderate, severe values from the vulnerabilities sub array
{'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}}]}
Advertisement
Answer
You’ve done a poor job of explaining it, but I’d bet that resources
is a list of multiple dictionaries in your original data, and you want to do something with all of those values.
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