如何在Python中访问和计算Json文件属性的值?
我有这个json文件。这是威胁情报平台的报告如何在Python中访问和计算Json文件属性的值?,python,json,attributes,malware,Python,Json,Attributes,Malware,我有这个json文件。这是威胁情报平台的报告 { "data": { "attributes": { "authentihash": "a077f952798eb3bc0730c7c4774da7636326cf4b524ed6571b7eaf3d43f0bd9b", "creation_date": 1387937380,
{
"data": {
"attributes": {
"authentihash": "a077f952798eb3bc0730c7c4774da7636326cf4b524ed6571b7eaf3d43f0bd9b",
"creation_date": 1387937380,
"crowdsourced_yara_results": [
{
"author": "Florian Roth",
"description": "Malware InstallRex / AntiFW",
"rule_name": "PUP_InstallRex_AntiFWb",
"ruleset_id": "000ca30c43",
"ruleset_name": "crime_antifw_installrex",
"source": "https://github.com/Neo23x0/signature-base"
}
],
"first_submission_date": 1389124248,
"last_analysis_date": 1603898773,
"last_analysis_results": {
"ALYac": {
"category": "undetected",
"engine_name": "ALYac",
"engine_update": "20201028",
"engine_version": "1.1.1.5",
"method": "blacklist",
"result": null
},
"APEX": {
"category": "undetected",
"engine_name": "APEX",
"engine_update": "20201028",
"engine_version": "6.90",
"method": "blacklist",
"result": null
},
"AVG": {
"category": "malicious",
"engine_name": "AVG",
"engine_update": "20201028",
"engine_version": "18.4.3895.0",
"method": "blacklist",
"result": "FileRepMetagen [Malware]"
},
我会计算有多少反恶意软件检测到恶意软件为“恶意”。所以
我可以访问并打印“上次分析结果”的完整列表,但我无法访问每个反恶意软件的“类别”。
我尝试:
for elem in data['data']['attributes']['last_analysis_results']:
但是后来呢?谢谢:)使用.values()
获取字典值。然后可以访问每个字典的类别
元素
sum(r['category'] == 'malicious' for r in data['data']['attributes']['last_analysis_results'].values())
布尔数在算术上被视为1和0,因此比较的总和计算其为真的次数。你可能是指总和而不是计数?是的,我是指总和,对不起。我用巴尔马的回答解决了这个问题。感谢you@daisy这个评论是写给我的,我最初在回答中写了
count
。@Barmar ok:)。我可以问你另一件事吗?我在json中有一个属性,我将打印它,但不是针对它所存在的所有元素。因此,当脚本找不到它时,控制台将打印“KeyError:”创建日期“”。我如何解决这个异常?感谢您的帮助。您可以尝试/排除来捕获错误,如果xxx中的“创建日期”为,则使用,或者使用xxx.get('creation\u date',default\u date)