2017-05-15 174 views
-1

我翻看了一些其他答案,但我並不完全理解。沒有重複的值。在嵌套字典中獲取父鍵

{ "type":"champion", 
     "data":{ 
      "89":{ 
       "title":"the Radiant Dawn", 
       "name":"Leona" 
       }, 
      "110":{ 
        "title":"the Arrow of Retribution", 
        "name":"Varus" 
       } 
      } 
} 

我有什麼,我不知道如何繼續。在實際字典有不僅僅是標題更多信息和關鍵

championID = 0 
    for key, value in championData["data"].items(): 
     for childkey,childvalue in value.items(): 
      # 
    champion = getChamp(championID) 

我想輸入一個名稱,並使其返回的ID(數量,89和110列)。例如,輸入利昂娜將返回89.

(對不起,我可以做問這個問題在一開始的一個更好的工作:「V)

+0

它看起來像你希望我們爲你寫一些代碼。儘管許多用戶願意爲遇險的編碼人員編寫代碼,但他們通常只在海報已嘗試自行解決問題時才提供幫助。證明這一努力的一個好方法是包含迄今爲止編寫的代碼,示例輸入(如果有的話),期望的輸出以及實際獲得的輸出(控制檯輸出,回溯等)。您提供的細節越多,您可能會收到的答案就越多。檢查[FAQ]和[問]。 – MooingRawr

+1

預期產量是多少? – luoluo

+0

爲什麼你想要這樣做呢? 'dict'並不打算如此使用。 如果你想迭代你可以使用'for k,v in mydict.iteritems()' – DineshKumar

回答

0

這將工作:

championData = {"type": "champion", "data": { 
    "89": { 
     "title": "the Radiant Dawn", 
     "name": "Leona" 
    }, 
    "110": { 
     "title": "the Arrow of Retribution", 
     "name": "Varus" 
    } 
}} 

name = "Leona" 
data = championData['data'] 
for championId in data: 
    if(data[championId]['name']) == name: 
     print(championId) 

的輸出是:89

+0

哇,我真的太過於複雜了。這就是我一直在尋找的,謝謝! – wrxryuu