2017-05-15 127 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