我有一个格式为的大型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
可以是任意数字,并且事先不知道。其余的值是不变的。
答案 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'])