解析一个大的json文件并在python

时间:2016-09-11 20:04:34

标签: python json

我有一个格式为的大型json文件 -

{
    "x": "",
    "y": {
        "a": {
            "-3": {
                "id": -2,
                "rut": "abc",

            },
            "-1": {
                "id": -1,
                 "rut": "cdf",

             } 
        }
     }
}

现在我想为所有情况检索id的值。 为此,我有以下代码 -

import json
from pprint import pprint

with open('file.json') as data_file:
data = json.load(data_file)
data['y']['a'].value()['id']

由于我不太熟悉在python中使用json,我无法弄清楚我做错了什么。我使用了.value(),因为值-3-1可以是任意数字,并且事先不知道。其余的值是不变的。

3 个答案:

答案 0 :(得分:2)

导入json 来自pprint import pprint

with open('file.json') as data_file:
    data = json.load(data_file)
    pprint([item['id'] for item in data['y']['a'].values()])

这是你在找什么?

答案 1 :(得分:1)

有点不清楚你的问题/错误是什么,但我的意思是你想简单地迭代所有可用的值来获得你的'id'字段。它看起来像那样:

for x in data['y']['a']:
    try:
        print(x['id'])
    except IndexError: #In case 'id' isn't present in that subtree
        pass

答案 2 :(得分:0)

你的意思是使用值()吗?

然而,要获得所有人的身份:

sub_data = data['y']['a']
for i in sub_data:
    print(sub_data['id'])