首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自具有重复名称的json数组的python解析(mitre att&ck)

来自具有重复名称的json数组的python解析(mitre att&ck)
EN

Stack Overflow用户
提问于 2020-07-11 05:16:28
回答 2查看 69关注 0票数 0

我是一个新手,试图从mitre att&ck json文件库中解析数据,并且被困在如何解析其中一个字段-攻击阶段名称的数据上。它们存储在一个数组中,有时会有重复的名称,如下所示:

代码语言:javascript
复制
"type": "attack-pattern",
            "kill_chain_phases": [
                {
                    "kill_chain_name": "mitre-attack",
                    "phase_name": "persistence"
                },
                {
                    "kill_chain_name": "mitre-attack",
                    "phase_name": "privilege-escalation"
                }
            ],

如果我尝试为get_phase(attack.kill_chain_phases[0].phase_name)返回值,那么python只在有时有多个值时返回一个值,比如privilege-escalation

如果我尝试胡乱使用类似这样的get_phase(attack.kill_chain_phases[0].phase_name[0]),输出将是其中一个阶段名称c的第一个字符

如果我尝试做像get_phase(attack_pattern.kill_chain_phases[1].phase_name)这样的事情,我会得到一个超出索引的错误...

有没有人知道如何使用python获取这些字段?另外,有谁知道如何描述这种数据格式和/或我正在尝试做什么,以便我可以尝试搜索解决方案?提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2020-07-11 05:22:07

您可能正在寻找像for loop这样的东西。一个简单的示例如下:

代码语言:javascript
复制
for attack in attack_pattern.kill_chain_phrases:

    get_phrase(attack)
票数 0
EN

Stack Overflow用户

发布于 2020-07-11 05:55:18

为此,您将需要使用一个循环。获取要查找其所有值的项的父项,然后可以遍历并获取所有子项的值。

代码语言:javascript
复制
import json

json_string = """{
  "type": "attack-pattern",
  "kill_chain_phases": [
    {
      "kill_chain_name": "mitre-attack",
      "phase_name": "persistence"
    },
    {
        "kill_chain_name": "mitre-attack",
        "phase_name": "privilege-escalation"
    }
  ]
}
"""

parsed_json = json.loads(json_string)

# Loop through the parent "kill_chain_phases"
for kill_chain_phase in parsed_json["kill_chain_phases"]:
  # print out the children "phase_name" values
  print(kill_chain_phase["phase_name"]

您将获得持久性的第一个字符,因为:get_phase(attack.kill_chain_phases[0].phase_name[0] =“get_phase(attack.kill_chain_phases[0].phase_name[0]

然后,Python获取该字符串并将其视为列表:"p“、"e”、"r“、"s”、"i“、"s”、"t“、"e”、"n“、"c”、"e“

所以phase_name[0]会展示给"p"看。

希望这是有意义的。

更多信息here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62842401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档