2015-04-13 90 views
0

快速的問題在這裏。我有這樣的字典(有更多的條目):Python - 在字典裏面讀字典的值

champlist = { 
     "Aatrox": { 
     "id": 266, 
     "title": "the Darkin Blade", 
     "name": "Aatrox", 
     "key": "Aatrox" 
     }, 
     "Thresh": { 
     "id": 412, 
     "title": "the Chain Warden", 
     "name": "Thresh", 
     "key": "Thresh" 
     } 
} 

而且我喜歡讀所有的id。我想這樣的

for champ in champlist: 
    print(champ['id']) 

但它說:

print(champ['id']) TypeError: string indices must be integers

它不選擇每一個「冠軍」是一本字典,但作爲一個字符串,任何與此幫助?謝謝!

回答

0

你不能像這樣迭代字典。嘗試重複的值改爲:

for champ in champlist.values(): 
    print(champ['id']) 

爲了完整,只是鍵:

for key in champlist.keys(): 
    print(key) 

,或者如果你需要鍵值組合:

for key, val in champlist.items(): 
    print('%s - %s', key, val) 

也有相同itervaluesiterkeys,和iteritems返回迭代器而不是列表的方法(更適合大型對象)

+0

我不能給予好評你,但這個工作!謝謝! – Nonitus

+0

沒有概率,很確定這已經觸及每個新的Python開發者在某個點或另一個點 –

1

試試這個:

Variable = champlist['Thresh']['id'] 

要迭代:使用字典的iterkeys()itervalues(),或iteritems()方法。

看看docs更多信息。 :)

+0

給予好評的答案決鬥:P –

0

就試試這個:

print [v['id'] for (k, v) in champlist.iteritems()]