python中json与str转换和出现KeyError的解决方法
python中json与str转换和出现KeyError的解决方法
- json转str
- str转json
- KeyError的解决方法
json转str
json格式的数据其实就是dict类型的数据,如图所示:
使用json包下的dumps方法把dict类型的数据转化为str类型,如图所示:
从输出的结果可以看出,中文被转换成了ascii码,点开dump函数可以看到有一个参数ensure_ascii默认为True:
将ensure_ascii改为False就可以了:
dump保存数据到文件:
在终端查看保存的文件,发现格式有点乱,不好看
通过jq,可以格式化json数据,并且还会高亮显示,如图所示:
安装jq只需要sudo apt-get install jq
就可以了。
str转json
先打开文件读取数据:
现在获取到的数据就是str类型的,使用loads把它转换成dict类型:
取json格式里的数据就是按照字典的方式:
KeyError的解决方法
当我们取的key在dict中不存在时,就会报KeyError的错误,
你也许会问,我怎么会犯这种错误呢,其实在开发中难免会遇到这种问题,因为当你调用一个接口时,它会根据类型返回不同结构的json数据,你就要避免这种错误,如图:
上图是调用olami接口返回的数据,可以看出,不同的type,它的json结构也是不同的,key也是不同的。
方法一:通过一些共有的key判断
方法二:先测试key是否存在,再操作
方法三:利用dict内置的get(key[,default])
当key存在时,返回key对应的值,当key不存在时返回None,也可以自定义返回值:
方法四:利用dict内置的setdefault(key[,default])
如果key存在,则返回其value;否则插入此key,其value为default,并返回default:
方法五:向类dict增加__missing__()
当key不存在时,会转向__missing__()方法处理,而不触发KeyError:
方法六:利用collections.defaultdict(default_factory)对象
实际上这个是继承自dict,而且实际也是用到的__missing__()方法,其default_factory参数就是向__missing__()方法传递的:
default_factory还可以是某种数据类型,但是不可以为None:
python中json与str转换和出现KeyError的解决方法相关推荐
- python 中关于无法导入自己写的类。解决方法
python 中关于无法导入自己写的类.解决方法 参考文章: (1)python 中关于无法导入自己写的类.解决方法 (2)https://www.cnblogs.com/jc-home/p/1209 ...
- python中json.dumps将中文变成unicode字符的解决办法
想要将字典内容写入文件中,发现用json.dumps时发现保存到文件中时中文部分变成unicode字符,如图 解决方法: 1.将data格式化成字符串 2.在json.dumps中加ensure_as ...
- Python中读取excel文件中长数字变成科学记数法的解决方法
因为要进行数据处理,涉及到身份证信息这种长数字的数据,excel直接就将长数字都整成科学记数法了,很明显,这样根本不行,于是我们就需要将其转换成字符串完整显示才行,于是我看了我手上的数据中,身份证那一 ...
- Python中出现TypeError: ‘int‘ object is not iterable的解决方法
我在写Python时出现了如下错误,这里做一个笔记 源代码如下: for n in len(name): 其实编译器的意思就是说len(name)是一个数字,而这种写法是迭代的写法,python中的f ...
- python中出现[Errno 2] No such file or directory解决方法之一
在我学习python文件部分的过程中 编写如下代码时: 会出现跳出如下错误 而我在该目录下的确有此文件 我查了很多资料都还是没有解决,最后我斥巨资(15¥)才得以解决,在这里我分享给大家 其实在这里主 ...
- Python中 ‘int‘ object is not subscriptable 问题的可能解决方法
列表中的元素为x=[1,2,3]的时候,我使用了 y=x[0][0] 但是x是一位数组,因此要么是y使用出错,要么是x构造或者添加的方法不对
- Python中json模块的load/loads方法实战及参数详解
文章目录 前言 正文 1. loads方法与load方法的异同 1.1不相同点: 1.2 相同点 1.3 例子 2. 转换成Python对象 3. json.load(s)的参数 3.1 s参数 3. ...
- python中xml格式的转换
文章目录 python中xml格式的转换 1. 基于DOM. 2. 基于ElementTree 使用dicttoxml xmltodict等模块 1.解析xml文件: 2.字典转换为xml文件: 3. ...
- 【强烈推荐】Python中JSON的基本使用(超详细)
Python中JSON的基本使用 1. JSON简介 2. JSON语法规则 3. JSON数据类型 4. JSON对象 5. JSON数组 6. JSON中常用的方法 6.1 json.dumps( ...
最新文章
- 【转载】C语言编译全过程
- 使用Java基于数据流直接抽取word文本
- FreeBSD 6.0架设管理与应用-附录B 制作FreeBSD安装光盘
- Java反射实现几种方式
- Git pull 错误:fatal: refusing to merge unrelated histories解决办法
- twitter mysql_twitter-mysql改进点
- POST+JSON+JS下载Excel或CSV
- Linux服务器---配置apache支持用户认证
- redistemplate 设置永不过期_解决密码已过期,拒绝访问问题
- asp.net ashx + JQuery Ajax + XML
- 框架分析--框架的类关系图
- 装箱问题 vijos
- Android ActivityManager常用方法
- Unity3D射击小游戏Demo开发
- cachecloud java_cachecloud安装部署
- 元宇宙GOD新纪元打通元宇宙
- 2018年7月中华人民共和国县以上行政区划代码
- 工作问题:SQL求解用户复购率
- 家庭“好用”优化师:每一件好物都是在积攒生活闪光
- α_β_γ_δ_ε_ζ_η_θ_ι_κ_λ_μ_ν怎么读