问题描述
{
"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_version": "6.90","AVG": {
"category": "malicIoUs","engine_name": "AVG","engine_version": "18.4.3895.0","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,因此,将比较结果相加即可得出正确的次数。