为了账号安全,请及时绑定邮箱和手机立即绑定

我在python中遇到关键错误

我在python中遇到关键错误

慕田峪7331174 2019-11-08 10:17:22
在我的python程序中,我收到此错误:KeyError: 'variablename'从此代码:path = meta_entry['path'].strip('/'),谁能解释为什么会这样吗?
查看完整描述

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


查看完整回答
反对 回复 2019-11-08
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

我完全同意主要错误评论。您也可以使用字典的get()方法来避免出现异常。这也可以用于提供默认路径,而不是None如下所示。


>>> d = {"a":1, "b":2}

>>> x = d.get("A",None)

>>> print x


查看完整回答
反对 回复 2019-11-08
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

是的,它很可能是由不存在的密钥引起的。


在我的程序中,出于效率考虑,我使用setdefault将此错误静音。取决于这条线的效率


>>>'a' in mydict.keys()  

我也是Python的新手。实际上,我今天才学到它。因此,请原谅我对效率的无知。


在Python 3中,您也可以使用此功能,


get(key[, default]) [function doc][1]

据说它永远不会引发关键错误。


查看完整回答
反对 回复 2019-11-08
  • 3 回答
  • 0 关注
  • 306 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信