[英]How to print specific value from specific key from JSON in Python
我寫了兩個函數,所以我可以知道冠軍名稱知道冠軍名稱,但是我想知道冠軍名稱知道冠軍名稱,但是由於數據的結構,我無法弄清楚如何提取名字。
"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
由於python值是通過引用傳遞的,因此您可以使用鍵作為主ID來創建新字典,該主鍵ID指向上一字典的值,這樣就不會重復太多數據。 但是要小心,如果您在一個字典中更改數據,那么在另一個字典中也會更改數據
def new_dict(d):
return { val["id"]:val for val in d.values() }
我用以下代碼解決了我的問題:
def championNameByID(id):
championData = requestChampionData()
allChampions = championData['data']
for champion in allChampions:
if id == allChampions[champion]['key']:
championName = allChampions[champion]['name']
return championName
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.