python中字符串类型json操作的注意事项


Posted in Python onMay 02, 2017

python操作json的方法有

json.dumps——将json对象(字典)转换为字符串对象

json.loads——将字符串对象转换为json对象(字典)

如果定义json对象

jsonstring1={"results":[{"id":"1","name":"\u9ed8\u8ba4\u5206\u7ec4","policy":"4","timer_scan_setting":"{\"last\":\"10.29.13\",\"setting\":\"fulldisk\",\"type\":\"day\",\"hour\":\"13\"}"},
{"id":"2","name":"\u6d4b\u8bd5\u7684","policy":"1","timer_scan_setting":"{\"last\":\"10.29.15\",\"setting\":\"fulldisk\",\"type\":\"day\",\"hour\":\"15\"}"},{"id":"4","name":"\u4ea7\u54c1\u7ec4","policy":"3","timer_scan_setting":"{\"last\":\"10.8.15\",\"setting\":\"disable\"}"}]}

可以直接按json操作,比如

print jsonstring1.keys()
print jsonstring1['results'][0]['policy']

也可以转个360度再操作

jsonstring1=json.dumps(jsonstring1)
jsonstring1=json.loads(jsonstring1)
print jsonstring1.keys()
print jsonstring1['results'][0]['policy']

但是如果定义字符串对象就要小心了

jsonstring2='''{"results":[{"id":"1","name":"\u9ed8\u8ba4\u5206\u7ec4","policy":"4","timer_scan_setting":"{\"last\":\"10.29.13\",\"setting\":\"fulldisk\",\"type\":\"day\",\"hour\":\"13\"}"},
{"id":"2","name":"\u6d4b\u8bd5\u7684","policy":"1","timer_scan_setting":"{\"last\":\"10.29.15\",\"setting\":\"fulldisk\",\"type\":\"day\",\"hour\":\"15\"}"},{"id":"4","name":"\u4ea7\u54c1\u7ec4","policy":"3","timer_scan_setting":"{\"last\":\"10.8.15\",\"setting\":\"disable\"}"}]}'''

这个只是对上面的json对象加了三引号转为一个字符串,所以理论上可以直接loads之后就按json操作

json.loads(jsonstring2)

但是实际却报错了,原因是因为大括号前后的双引号没有去掉,网上很多在线的json格式化工具对于这些双引号不会报错,但是python会,而定义json对象时加了双引号操作却没报错,是因为不加里面的内容会被转义,所以千万不能完全相信网上的json格式校验工具。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
Dec 14 Python
python 请求服务器的实现代码(http请求和https请求)
May 25 Python
TensorFlow 模型载入方法汇总(小结)
Jun 19 Python
python 字典中文key处理,读取,比较方法
Jul 06 Python
python+splinter实现12306网站刷票并自动购票流程
Sep 25 Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 Python
python实现图片中文字分割效果
Jul 22 Python
Python 类的魔法属性用法实例分析
Nov 21 Python
python中图像通道分离与合并实例
Jan 17 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
python3.9之你应该知道的新特性详解
Apr 29 Python
Python上下文管理器Content Manager
Jun 26 Python
python实现逻辑回归的方法示例
May 02 #Python
pycharm中连接mysql数据库的步骤详解
May 02 #Python
Python多线程实现同步的四种方式
May 02 #Python
Python之Web框架Django项目搭建全过程
May 02 #Python
python3实现抓取网页资源的 N 种方法
May 02 #Python
Pycharm学习教程(2) 代码风格
May 02 #Python
Pycharm学习教程(1) 定制外观
May 02 #Python
You might like
十天学会php之第八天
2006/10/09 PHP
PHP自定义大小验证码的方法详解
2013/06/07 PHP
PHP小教程之实现双向链表
2014/06/12 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
2015/12/18 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
js获取单选按钮的数据
2006/11/27 Javascript
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
jQuery获取样式中颜色值的方法
2015/01/29 Javascript
AngularJS 中的指令实践开发指南(一)
2016/03/20 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
2017/04/25 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
javascript自定义加载loading效果
2020/09/15 Javascript
Python多线程threading和multiprocessing模块实例解析
2018/01/29 Python
python取余运算符知识点详解
2019/06/27 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
python 制作简单的音乐播放器
2020/11/25 Python
eDreams意大利:南欧领先的在线旅行社
2018/11/23 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
食品安全宣传标语
2014/06/07 职场文书
医院搬迁方案
2014/06/14 职场文书
慈善募捐倡议书
2015/04/27 职场文书
假期读书倡议书3篇
2019/08/19 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
python 镜像环境搭建总结
2022/09/23 Python