Python 如何从JSON文件中提取这些数据项?

Python 如何从JSON文件中提取这些数据项?,python,json,Python,Json,我有一个JSON文件,我想为每个champion获取“id”值和“key”值: 这里的例子是我的champion.json文件中的两个champion,但是如果我有100个champion,我该怎么做呢 { “类型”:“冠军”, “格式”:“standAloneComplex”, “版本”:“9.23.1”, “数据”:{ “Aatrox”:{ “版本”:“9.23.1”, “id”:“Aatrox”, “密钥”:“266”, “名称”:“Aatrox”, “标题”:“黑暗之刃” }, “Ahr

我有一个JSON文件,我想为每个champion获取“id”值和“key”值:

这里的例子是我的
champion.json
文件中的两个champion,但是如果我有100个champion,我该怎么做呢

{
“类型”:“冠军”,
“格式”:“standAloneComplex”,
“版本”:“9.23.1”,
“数据”:{
“Aatrox”:{
“版本”:“9.23.1”,
“id”:“Aatrox”,
“密钥”:“266”,
“名称”:“Aatrox”,
“标题”:“黑暗之刃”
},
“Ahri”:{
“版本”:“9.23.1”,
“id”:“Ahri”,
“钥匙”:“103”,
“姓名”:“Ahri”,
“标题”:“九尾狐”
}
}
}
我的python文件:

import json

all_data = open('champion.json',  encoding="utf8")
data_champ = json.load(all_data)

for element in data_champ['data']:
    print(data_champ[element]["key"])
    print(data_champ[element]['id'])

在您问题中的JSON数据结构中,与
data
键关联的值是一个字典字典,因此您需要像这样访问每个字典的值:

import json

with open('champion.json',  encoding="utf8") as all_data:
    data_champ = json.load(all_data)

for value in data_champ['data'].values():
    print(value["key"])
    print(value['id'])
输出:

266
厄薩斯
103
阿赫里

我还使用
with
语句更改了文件处理,以确保文件正确关闭。

它是如何工作的?发生了什么?我总是有相同的错误:
print(data\u champ[element][“key”])keyror:'Aatrox'
如果打印'element'并注释掉两个现有的print语句会发生什么?至于为什么会出现这种错误,
data\u champ
没有'Aatrox'键。但是,
data\u champ['data']
确实如此,因此如果您使用了
data\u champ['data'][element][“key”]
它应该可以正常工作。