簡體   English   中英

如何在 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,因此將比較相加計算其為真的次數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM