Python - 阅读词典'字典里面的价值观

时间:2015-04-13 00:54:22

标签: python dictionary

这里的问题很快。我有这样的字典(有更多条目):

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

它不会将每个“冠军”选为字典,而是作为字符串,对此有何帮助?谢谢!

3 个答案:

答案 0 :(得分:1)

试试这个:

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

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

查看docs更多信息。 :)

答案 1 :(得分: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)

还有相同的itervaluesiterkeysiteritems方法返回迭代器而不是列表(更适合大型objs)

答案 2 :(得分:0)

试试这个:

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