簡體   English   中英

如何從Python中的JSON打印特定鍵中的特定值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM