我写了2个函数,所以我可以知道冠军名称知道冠军名称,但是我想知道冠军名称知道冠军名称,但是由于数据的结构,我不知道如何提取名字。
"data":{"Aatrox":{"version":"8.23.1","id":"Aatrox","key":"266","name":"Aatrox"
所以在我的代码中,我写了['data']['championName'(in this case Aatrox)]['key']
以获取冠军ID /钥匙。但是,例如,如果我不知道冠军名称而是冠军ID,该如何扭转呢?如果在写完['data']之后需要写冠军名称,那么我将如何获得冠军名称,以便深入了解所有冠军信息,例如ID,标题等。
链接:http://ddragon.leagueoflegends.com/cdn/8.23.1/data/en_US/champion.json
代码:
def requestChampionData(championName):
name = championName.lower()
name = name.title()
URL = "http://ddragon.leagueoflegends.com/cdn/8.23.1/data/en_US/champion/" + name + ".json"
response = requests.get(URL)
return response.json()
def championID(championName):
championData = requestChampionData(championName)
championID = str(championData['data'][championName]['key'])
return championID
答案 0 :(得分:0)
由于python值是通过引用传递的,因此您可以使用键作为主ID来创建新字典,该主键ID指向先前字典的值,这样就不会重复太多数据。但是要小心,如果您在一个命令中更改数据,那么在另一个命令中也将更改数据
def new_dict(d):
return { val["id"]:val for val in d.values() }
答案 1 :(得分:0)
我用以下代码解决了我的问题:
def championNameByID(id):
championData = requestChampionData()
allChampions = championData['data']
for champion in allChampions:
if id == allChampions[champion]['key']:
championName = allChampions[champion]['name']
return championName