Python KeyError -- 常用解决办法
Published on 2019-12-30 17:29 in 暂未分类 with deeojunkie

Python KeyError -- 常用解决办法

当访问不在dict中的键时会引发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'}
复制代码

 

 

参考:https://www.polarxiong.com/archives/Python-%E6%93%8D%E4%BD%9Cdict%E6%97%B6%E9%81%BF%E5%85%8D%E5%87%BA%E7%8E%B0KeyError%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E6%B3%95.html

posted @   deeojunkie  阅读(57670)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示