感谢您抽出宝贵的时间来帮助我。我有以下代码,无法弄清楚为什么我的生活不起作用。请原谅我,最近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
非常感谢您!
答案 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