Python的KeyError的解决办法

介绍

福哥在编写python程序的时候比较喜欢用dict类型对象,尤其喜欢用多级dict数据结构。但是有个问题,如果调用一个不存在的元素就会报出KeyError异常,要在上下文里增加try … except太麻烦了,怎么办呢?

今天给出一些判断dict类型对象是否包含某个键的元素的方法,大家可以根据自己的喜好选择使用。

解决办法

2.1 方法1通过in判断key是否存在

my = {"nick":"福哥","age":"35","languages":["c/c++","java","php","python","javascript"]}

if "province" in my:
    print(my["province"])

2.2 方法2使用get方法判断key是否存在

my = {"nick":"福哥","age":"35","languages":["c/c++","java","php","python","javascript"]}

if my.get("province") is not None:
    print(my["province"])

2.3 方法3使用get方法的第二个参数,如果目标key不存在则返回第二个参数

my = {"nick":"福哥","age":"35","languages":["c/c++","java","php","python","javascript"]}

print(my.get("province", "北京"))
print(my)

2.4 方法4使用setdefault方法的第二个参数,如果目标key不存在则返回第二个参数同时讲第二个参数写入key位置

my = {"nick":"福哥","age":"35","languages":["c/c++","java","php","python","javascript"]}

print(my.setdefault("province", "北京"))
print(my)

总结

在编写python程序的时候,经常会遇到KeyError这种情况,如果直接使用触发了异常程序就会终止执行了,如果要增加try … except语句捕获未免太麻烦了,学会使用这些技巧之后就可以从容应对了!

上一篇:vue.js实战教程 https://www.jb51.net/Special/978.htm


下一篇:解决调用百度OCR接口报错:KeyError: ‘words_result‘