在我的python程序中,我得到这个错误:
KeyError: 'variablename'
从这段代码:
path = meta_entry['path'].strip('/'),
有人能解释一下为什么会这样吗?
在我的python程序中,我得到这个错误:
KeyError: 'variablename'
从这段代码:
path = meta_entry['path'].strip('/'),
有人能解释一下为什么会这样吗?
当前回答
KeyError通常表示该键不存在。你确定路径键存在吗?
来自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
其他回答
对于字典,使用即可
如果输入字典
不要在键列表中使用搜索
If key in dict.keys()
后者将更加耗时。
KeyError通常表示该键不存在。你确定路径键存在吗?
来自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
我完全同意关键错误的评论。您也可以使用字典的get()方法来避免异常。这也可以用于提供默认路径,而不是如下所示的None。
>>> d = {"a":1, "b":2}
>>> x = d.get("A",None)
>>> print x
None
如果您使用的是Python 3,让我们简化一下
mydict = {'a':'apple','b':'boy','c':'cat'}
check = 'c' in mydict
if check:
print('c key is present')
如需其他条件
mydict = {'a':'apple','b':'boy','c':'cat'}
if 'c' in mydict:
print('key present')
else:
print('key not found')
对于动态键值,也可以通过try-exception块进行处理
mydict = {'a':'apple','b':'boy','c':'cat'}
try:
print(mydict['c'])
except KeyError:
print('key value not found')mydict = {'a':'apple','b':'boy','c':'cat'}
例如,如果这是一个数字:
ouloulou={
1:US,
2:BR,
3:FR
}
ouloulou[1]()
它工作得很完美,但如果你用例如:
ouloulou[input("select 1 2 or 3"]()
这行不通,因为你的输入返回字符串'1'所以你需要使用int()
ouloulou[int(input("select 1 2 or 3"))]()