如何访问和计算 Python 中 Json 文件的属性值?
How can I access and count a value of an attribute of Json file in Python?
我有这个 json 文件。这是威胁情报平台的报告。
{
"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]"
},
我会计算有多少反恶意软件将恶意软件检测为“恶意”。所以
我可以访问并打印“last_analysis_results”的整个列表,但我无法访问每个反恶意软件的“类别”。
我尝试:
for elem in data['data']['attributes']['last_analysis_results']:
但是呢?谢谢:)
使用.values()
获取字典值。然后你可以访问每个字典的category
元素。
sum(r['category'] == 'malicious' for r in data['data']['attributes']['last_analysis_results'].values())
布尔值在算术上被视为 1 和 0,因此对比较求和计算其为真的次数。
我有这个 json 文件。这是威胁情报平台的报告。
{
"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]"
},
我会计算有多少反恶意软件将恶意软件检测为“恶意”。所以 我可以访问并打印“last_analysis_results”的整个列表,但我无法访问每个反恶意软件的“类别”。 我尝试:
for elem in data['data']['attributes']['last_analysis_results']:
但是呢?谢谢:)
使用.values()
获取字典值。然后你可以访问每个字典的category
元素。
sum(r['category'] == 'malicious' for r in data['data']['attributes']['last_analysis_results'].values())
布尔值在算术上被视为 1 和 0,因此对比较求和计算其为真的次数。