Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中访问和计算Json文件属性的值?_Python_Json_Attributes_Malware - Fatal编程技术网

如何在Python中访问和计算Json文件属性的值?

如何在Python中访问和计算Json文件属性的值?,python,json,attributes,malware,Python,Json,Attributes,Malware,我有这个json文件。这是威胁情报平台的报告 { "data": { "attributes": { "authentihash": "a077f952798eb3bc0730c7c4774da7636326cf4b524ed6571b7eaf3d43f0bd9b", "creation_date": 1387937380,

我有这个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]"
                },
我会计算有多少反恶意软件检测到恶意软件为“恶意”。所以 我可以访问并打印“上次分析结果”的完整列表,但我无法访问每个反恶意软件的“类别”。 我尝试:

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)