我试图解析以下json文件:https://nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-2017.json.gz
我试图迭代一个嵌套字段,但它抛出错误。如何正确地迭代“配置”中的对象?在
json文件的部分示例:
{
"CVE_data_type" : "CVE",
"CVE_data_format" : "MITRE",
"CVE_data_version" : "4.0",
"CVE_data_numberOfCVEs" : "4337",
"CVE_data_timestamp" : "2018-06-06T07:00Z",
"CVE_Items" : [ {
"cve" : {
"data_type" : "CVE",
"data_format" : "MITRE",
"data_version" : "4.0",
"CVE_data_meta" : {
"ID" : "CVE-2018-0001",
"ASSIGNER" : "cve@mitre.org"
},
"affects" : {
"vendor" : {
"vendor_data" : [ {
"vendor_name" : "juniper",
"product" : {
"product_data" : [ {
"product_name" : "junos",
"version" : {
"version_data" : [ {
"version_value" : "12.1x46"
}, {
"version_value" : "12.3"
}, {
"version_value" : "12.3x48"
}, {
"version_value" : "14.1"
}, {
"version_value" : "14.1x53"
}, {
"version_value" : "14.2"
}, {
"version_value" : "15.1"
}, {
"version_value" : "15.1x49"
}, {
"version_value" : "15.1x53"
} ]
}
} ]
}
} ]
}
},
"problemtype" : {
"problemtype_data" : [ {
"description" : [ {
"lang" : "en",
"value" : "CWE-416"
} ]
} ]
},
"references" : {
"reference_data" : [ {
"url" : "http://www.securityfocus.com/bid/103092",
"name" : "103092",
"refsource" : "BID"
}, {
"url" : "http://www.securitytracker.com/id/1040180",
"name" : "1040180",
"refsource" : "SECTRACK"
}, {
"url" : "https://kb.juniper.net/JSA10828",
"name" : "https://kb.juniper.net/JSA10828",
"refsource" : "CONFIRM"
} ]
},
"description" : {
"description_data" : [ {
"lang" : "en",
"value" : "A remote, unauthenticated attacker may be able to execute code by exploiting a use-after-free defect found in older versions of PHP through injection of crafted data via specific PHP URLs within the context of the J-Web process. Affected releases are Juniper Networks Junos OS: 12.1X46 versions prior to 12.1X46-D67; 12.3 versions prior to 12.3R12-S5; 12.3X48 versions prior to 12.3X48-D35; 14.1 versions prior to 14.1R8-S5, 14.1R9; 14.1X53 versions prior to 14.1X53-D44, 14.1X53-D50; 14.2 versions prior to 14.2R7-S7, 14.2R8; 15.1 versions prior to 15.1R3; 15.1X49 versions prior to 15.1X49-D30; 15.1X53 versions prior to 15.1X53-D70."
} ]
}
},
"configurations" : {
"CVE_data_version" : "4.0",
"nodes" : [ {
"operator" : "OR",
"cpe" : [ {
"vulnerable" : true,
"cpe22Uri" : "cpe:/o:juniper:junos:12.1x46:d10",
"cpe23Uri" : "cpe:2.3:o:juniper:junos:12.1x46:d10:*:*:*:*:*:*"
}, {
"vulnerable" : true,
"cpe22Uri" : "cpe:/o:juniper:junos:12.1x46:d15",
"cpe23Uri" : "cpe:2.3:o:juniper:junos:12.1x46:d15:*:*:*:*:*:*"
}, {
"vulnerable" : true,
"cpe22Uri" : "cpe:/o:juniper:junos:12.1x46:d20",
"cpe23Uri" : "cpe:2.3:o:juniper:junos:12.1x46:d20:*:*:*:*:*:*"
}, {
"vulnerable" : true,
"cpe22Uri" : "cpe:/o:juniper:junos:12.1x46:d25",
"cpe23Uri" : "cpe:2.3:o:juniper:junos:12.1x46:d25:*:*:*:*:*:*"
}, {
"vulnerable" : true,
Python代码:
^{pr2}$我得到以下输出和错误:
$python parsingconf.py nvdcve-1.0-2018.json
OR [{u'cpe22Uri': u'cpe:/o:juniper:junos:12.1x46:d10', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.1x46:d10:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.1x46:d15', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.1x46:d15:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.1x46:d20', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.1x46:d20:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.1x46:d25', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.1x46:d25:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.1x46:d30', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.1x46:d30:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.1x46:d35', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.1x46:d35:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.1x46:d40', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.1x46:d40:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.1x46:d45', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.1x46:d45:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.1x46:d50', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.1x46:d50:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.1x46:d55', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.1x46:d55:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.1x46:d60', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.1x46:d60:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.1x46:d65', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.1x46:d65:*:*:*:*:*:*', u'vulnerable': True}]
OR [{u'cpe22Uri': u'cpe:/o:juniper:junos:12.3x48:d10', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3x48:d10:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3x48:d15', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3x48:d15:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3x48:d20', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3x48:d20:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3x48:d25', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3x48:d25:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3x48:d30', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3x48:d30:*:*:*:*:*:*', u'vulnerable': True}]
OR [{u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x49:d10', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x49:d10:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x49:d20', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x49:d20:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x49:d30', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x49:d30:*:*:*:*:*:*', u'vulnerable': True}]
OR [{u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x53:d20', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x53:d20:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x53:d21', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x53:d21:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x53:d25', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x53:d25:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x53:d30', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x53:d30:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x53:d32', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x53:d32:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x53:d33', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x53:d33:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x53:d34', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x53:d34:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x53:d60', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x53:d60:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x53:d61', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x53:d61:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x53:d62', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x53:d62:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1x53:d63', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1x53:d63:*:*:*:*:*:*', u'vulnerable': True}]
OR [{u'cpe22Uri': u'cpe:/o:juniper:junos:14.1', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1:*:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1:r1', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1:r1:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1:r2', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1:r2:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1:r3', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1:r3:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1:r4', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1:r4:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1:r8', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1:r8:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1:r9', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1:r9:*:*:*:*:*:*', u'vulnerable': True}]
OR [{u'cpe22Uri': u'cpe:/o:juniper:junos:14.2:r1', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.2:r1:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.2:r2', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.2:r2:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.2:r3', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.2:r3:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.2:r4', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.2:r4:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.2:r5', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.2:r5:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.2:r7', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.2:r7:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.2:r8', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.2:r8:*:*:*:*:*:*', u'vulnerable': True}]
OR [{u'cpe22Uri': u'cpe:/o:juniper:junos:15.1:r1', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1:r1:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:15.1:r2', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:15.1:r2:*:*:*:*:*:*', u'vulnerable': True}]
OR [{u'cpe22Uri': u'cpe:/o:juniper:junos:12.3', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3:*:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3:r1', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3:r1:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3:r10', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3:r10:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3:r2', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3:r2:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3:r3', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3:r3:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3:r4', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3:r4:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3:r5', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3:r5:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3:r6', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3:r6:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3:r7', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3:r7:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3:r8', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3:r8:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:12.3:r9', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:12.3:r9:*:*:*:*:*:*', u'vulnerable': True}]
OR [{u'cpe22Uri': u'cpe:/o:juniper:junos:14.1x53', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1x53:*:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1x53:d10', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1x53:d10:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1x53:d15', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1x53:d15:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1x53:d16', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1x53:d16:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1x53:d25', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1x53:d25:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1x53:d26', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1x53:d26:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1x53:d27', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1x53:d27:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1x53:d35', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1x53:d35:*:*:*:*:*:*', u'vulnerable': True}, {u'cpe22Uri': u'cpe:/o:juniper:junos:14.1x53:d50', u'cpe23Uri': u'cpe:2.3:o:juniper:junos:14.1x53:d50:*:*:*:*:*:*', u'vulnerable': True}]
Traceback (most recent call last):
File "parsingconf.py", line 23, in <module>
main()
File "parsingconf.py", line 19, in main
cpe = n['cpe']
KeyError: 'cpe'
当您不确定正在解析的数据的有效性时,最好使用
cpe = n.get('cpe', 'some default value')
。在如果没有任何节点的“cpe”,则
cpe = n['cpe']
将给出密钥错误。在正如@L3viathan注释的那样,node的一个条目没有密钥cpe。如果它们都应该拥有这个密钥,那么数据响应可能已损坏或不完整。只需在try块中包装响应。在
相关问题 更多 >
编程相关推荐