3 回答

TA贡献1995条经验 获得超2个赞
一个KeyError通常意味着该键不存在。那么,您确定path密钥存在吗?
来自官方python文档:
异常KeyError
在现有键集中找不到映射(字典)键时引发。
例如:
>>> mydict = {'a':'1','b':'2'}
>>> mydict['a']
'1'
>>> mydict['c']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'c'
>>>
因此,尝试打印的内容meta_entry并检查是否path存在。
>>> mydict = {'a':'1','b':'2'}
>>> print mydict
{'a': '1', 'b': '2'}
或者,您可以执行以下操作:
>>> 'a' in mydict
True
>>> 'c' in mydict
False

TA贡献1812条经验 获得超5个赞
我完全同意主要错误评论。您也可以使用字典的get()方法来避免出现异常。这也可以用于提供默认路径,而不是None如下所示。
>>> d = {"a":1, "b":2}
>>> x = d.get("A",None)
>>> print x

TA贡献1852条经验 获得超1个赞
是的,它很可能是由不存在的密钥引起的。
在我的程序中,出于效率考虑,我使用setdefault将此错误静音。取决于这条线的效率
>>>'a' in mydict.keys()
我也是Python的新手。实际上,我今天才学到它。因此,请原谅我对效率的无知。
在Python 3中,您也可以使用此功能,
get(key[, default]) [function doc][1]
据说它永远不会引发关键错误。
添加回答
举报