Python KeyError
Google一下轻松找到了答案,大家可以看一下Python Wiki,很简单,翻译如下。
在Python中,当你使用a[key]这种方式从字典中获取一个值时,若字典中不存在这个此key时就会产生一个KeyError的错误,比如:
In [1]: d = {'name': 'wang'}
In [2]: d['name']
Out[2]: 'wang'
In [3]: d['age']
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-3-39d5d5cefe61> in <module>()
----> 1 d['age']
KeyError: 'age'
不过也提供了解决办法:可以使用a.get(key, default_value)这种方式来避免这种错误,如下:
In [4]: d.get('age', 13)
Out[4]: 13
还有一种更高级的方法,不知道改怎么翻译好,大家可以去看原文,setdefault(key, value)方法,使用方法如下(好像实现的是对应的一个关系):
In [7]: default = 'wang'
In [8]: dog_own_by = {'Peter': 'zhao', 'Bug': 'qian'}
In [9]: dogs = []
In [10]: for owner in ['Peter', 'Bug', 'Bad']:
....: dog
dog_own_by dogs
....: dogs.append(dog)
dog_own_by dogs
....: dogs.append(dog_own_by.setdefault(own, default))
....:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-10-cf8486afc0be> in <module>()
1 for owner in ['Peter', 'Bug', 'Bad']:
----> 2 dogs.append(dog_own_by.setdefault(own, default))
3
NameError: name 'own' is not defined
In [11]: for owner in ['Peter', 'Bug', 'Bad']:
dogs.append(dog_own_by.setdefault(owner, default))
....:
In [12]: dogs
Out[12]: ['zhao', 'qian', 'wang']
In [13]: dog
dog_own_by dogs
In [13]: dog_own_by
Out[13]: {'Bad': 'wang', 'Bug': 'qian', 'Peter': 'zhao'}
看了link的翻译,功能和get差不多,具体说是如果key还不存在于已有的字典中则添加到里边去,并赋一个默认值,实验一下,如下:
In [14]: d
Out[14]: {'age': 13, 'name': 'wang'}
In [15]: d.setdefault('sex', 'male')
Out[15]: 'male'
In [16]: d
Out[16]: {'age': 13, 'name': 'wang', 'sex': 'male'}
好物、羊毛线报群,需要的可加QQ群 1049623906
Python KeyError的更多相关文章
- Ubuntu下导入PySpark到Shell和Pycharm中(未整理)
实习后面需要用到spark,虽然之前跟了edX的spark的课程以及用spark进行machine learning,但那个环境是官方已经搭建好的,但要在自己的系统里将PySpark导入shell(或 ...
- Python图片处理PIL/pillow/生成验证码/出现KeyError: 和The _imagingft C module is not installed
最近在用Python开发自己的博客,需要用到Python生成验证码,当然肯定要用到Python的图形处理库PIL,因为我用的是windows. 所以在安装好pil之后就开始写,就按照题目所说出现了Th ...
- python执行时遇到 KeyError: b'somevar' 时需要想到的
虽然这个问题很小,但我觉得很有必要单独拿出来强调一下. 这样在遇到类似错误的时候可以很快反应过来,进而节约了时间. 这里我拿 shelve 模块举例(shelve的作用大致就是把python变量存放到 ...
- python 字典的KeyError处理方法
先看一段代码: user = dict(name="brainliao", age=32) print(user["sex"]) 运行结果如下: user这个字 ...
- Python处理HTTP返回包遇到问题总结TypeError、keyError、SyntaxError、AttributeError
处理HTTP返回包包括对关键参数的校验,参数完整性检验,获取返回包参数的方法,返回包数据去重方法 在执行时遇到不少问题,部分问题记录如下: 1.报错信息:“TypeError: list indice ...
- Python操作dict时避免出现KeyError的几种方法
见原文:https://www.polarxiong.com/archives/Python-%E6%93%8D%E4%BD%9Cdict%E6%97%B6%E9%81%BF%E5%85%8D%E5% ...
- KeyError:‘uid' Python常见错误
使用不存在的字典键值 检查字典和要查的内容 如有不正确改正即可
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- Python高手之路【三】python基础之函数
基本数据类型补充: set 是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object ...
随机推荐
- Angular实现瀑布流的库angular-deckgrid
一. 安装 bower install --save angular-deckgrid 添加代码到你的HTML 添加到你的angular模块中: angular.module('your.module ...
- jquery 选择器大全
jquery 选择器大体上可分为4 类: 1.基本选择器 2.层次选择器 3.过滤选择器 4.表单选择器 其中过滤选择器可以分为: 1.简单过滤选择器 2.内容过滤选择器 3.可见性过滤选择器 4.属 ...
- XML-RPC远程方法调用
一.简介 XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用. 它是一套允许运行在不同操作系统.不同环境的程序实现基于Internet过程调用的规范和一系列 ...
- 2015年辽宁省赛Interesting Tree
题目描述 Recently, Miss Huang want to receive a Tree as her birthday gift! (What a interesting person!) ...
- ViewHolder数据错乱BUG
需求是这样的,在列表中用一个图标标示某个item是已经被接下或者完成的任务. 对于文件有这样的操作,进入列表后第一页面展示正常,但是加载更多后同样位置出现了同样的标志.这不是我想要的效果 我的解决办法 ...
- 如何调试js文件
来源于:http://stackoverflow.com/questions/988363/how-can-i-debug-my-javascript-code http://stackoverflo ...
- LINUX 配置SVN
1. 安装SVN yum -y install subversion 2. 创建版本库目录 mkdir /root/svn/ svnserve -d -r /root/svn/ 3. 创建版本库 ...
- C语言创始人
丹尼斯·麦卡利斯泰尔·里奇(英语:Dennis MacAlistair Ritchie,1941年9月9日-2011年10月12日[3]),生于美国纽约州布朗克斯维尔(Bronxville),著名的美 ...
- java 上传图片 并压缩图片大小
Thumbnailator 是一个优秀的图片处理的Google开源Java类库.处理效果远比Java API的好.从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生 ...
- Shell脚本_备份/etc数据
vim backup_etc.sh chmod 755 backup_etc.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 ...