我想用Python提取JSON中的特定位置。我对“数据”中的所有条目感兴趣(参见下面的代码)。我感兴趣的条目是“4101”和“3591”。我对任何更深层次的细节都不感兴趣。我如何获得条目列表。我的最终结果应该是输出= [“4101”,“3591”,等等......]
我正在使用json.dump和Python。 是否有任何属性可以添加到json.dump(记录)?像json.dump(records,findonly =“data”,depth =“1”)?
records = """{
"status": "ok",
"count": 130,
"data": {
"4101": {
"is_gift": false,
"nation_i18n": "Japan",
"name": "type-91",
"level": 1,
"nation": "japan",
"is_premium": false,
"plane_id": 4101,
"images": {
"small": "http://worldofwarplanes.eu/static/1.1.0/encyclopedia/planopedia/vehicle/small/type-91.png",
"large": "http://worldofwarplanes.eu/static/1.1.0/encyclopedia/planopedia/vehicle/large/type-91.png",
"medium": "http://worldofwarplanes.eu/static/1.1.0/encyclopedia/planopedia/vehicle/medium/type-91.png"
},
"name_i18n": "Nakajima Type-91",
"type": "fighter"
},
"3591": {......[it goes on and on]
答案 0 :(得分:2)
使用json.load()
将JSON解析为Python数据结构,然后访问您需要的任何内容:
json_file = open('data.json')
dct = json.load(json_file)
print dct['data'].keys()
输出:
[u'4101', u'3591']
答案 1 :(得分:-1)
因为我寻找的所有条目都是4位数字,所以我去了regexp:
result = re.findall('\d{4}', record)
print result