使用Python从JSON获取有限的信息

时间:2013-12-24 13:12:10

标签: python json

我想用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]

2 个答案:

答案 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