我是一个新手,试图解析来自mitre att&;的回购协议的数据;ck json文件,我一直在研究如何解析其中一个字段的数据——攻击阶段名称。它们存储在一个数组中,有时会有重复的名称,请参见以下内容:
"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获取这些字段吗?还有人知道如何描述这种数据格式和/或我正在尝试做什么,以便我可以尝试搜索解决方案吗?提前谢谢
您可能正在寻找类似于for loop的东西。一个简单的例子如下:
您需要为此使用一个循环。获取要查找其所有值的项的父项,然后可以循环并获取所有子项的值
您将获得
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
相关问题 更多 >
编程相关推荐