嵌套字典和字符串索引错误

时间:2018-09-05 00:52:30

标签: python python-3.x dictionary

感谢您抽出宝贵的时间来帮助我。我有以下代码,无法弄清楚为什么我的生活不起作用。请原谅我,最近2星期左右我一直在使用Python,所以我确信我到处都搞砸了。

import os
import plistlib



pl = {1:{11:'k','Letters':'qrst',13:'m'},
      2:{11:'k','Letters':'lmn',13:'m'},
      3:'c',
      4:'d',
      5:'e'}


for left, right in pl.items():
   for values in right.values():
      print(values['Letters'])

运行此命令时,出现以下错误:

Traceback (most recent call last):
File "plist.py", line 34, in <module>
    print(values['Letters'])
TypeError: string indices must be integers

我的目标是返回: qrst lmn

非常感谢您!

2 个答案:

答案 0 :(得分:0)

要访问内部字典键,您无需进行迭代。您可以使用dict.__getitem__dict.get。但是,由于您的外部词典值不是全部 词典,因此您需要进行某种类型检查或使用try / except

这是后一种方法的示例:

for left, right in pl.items():
    try:
        print(right['Letters'])
    except TypeError:
        pass

qrst
lmn

答案 1 :(得分:0)

for k,v in pl.items():
   if type(v)==dict:
      print(v["Letters"])
   else:
      continue