当访问不在dict中的键时会引发KeyError错误

python keyerror异常 python的keyerror_python keyerror异常

 

解决办法:

1. 使用之前先判断key是否存在,然后才进行下一步操作,如:

t = {
    'a': '1',
    'b': '2',
    'c': '3',
}
if 'd' in t:
    print(t['d'])
else:
    print('not exist')

2. 使用dict内置的get(key[,default])方法,如果key存在,则返回其value,否则返回default,使用这个方法永远不会触发KeyError:

t = {
    'a': '1',
    'b': '2',
    'c': '3',
}
print(t.get('d'))


结果:  None

  设定default参数:

t = {
    'a': '1',
    'b': '2',
    'c': '3',
}
print(t.get('d', 'not exist'))
print(t)

结果:
not exist
{'a': '1', 'c': '3', 'b': '2'}

3. 利用dict内置的setdefault(key[,default])方法,如果key存在,则返回其value;否则插入此key,其value为,并返回default;使用这个方法也永远不会触发KeyError,如:

t = {
    'a': '1',
    'b': '2',
    'c': '3',
}
print(t.setdefault('d'))
print(t)

结果:
None
{'b': '2', 'd': None, 'a': '1', 'c': '3'}

  设定default参数:

t = {
    'a': '1',
    'b': '2',
    'c': '3',
}
print(t.setdefault('d', 'not exist'))
print(t)

结果:
not exist
{'c': '3', 'd': 'not exist', 'a': '1', 'b': '2'}