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 相关文章推荐
videocapture库制作python视频高速传输程序
Dec 23 Python
Django内容增加富文本功能的实例
Oct 17 Python
Python中的id()函数指的什么
Oct 17 Python
十行代码使用Python写一个USB病毒
Jun 21 Python
python实现WebSocket服务端过程解析
Oct 18 Python
Python 音频生成器的实现示例
Dec 24 Python
3种python调用其他脚本的方法
Jan 06 Python
matplotlib图例legend语法及设置的方法
Jul 28 Python
Python 文本滚动播放器的实现代码
Apr 25 Python
判断Python中的Nonetype类型
May 25 Python
Django+Nginx+uWSGI 定时任务的实现方法
Jan 22 Python
Python绘制散乱的点构成的图的方法
Apr 21 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 n个不重复的随机数生成代码
2009/06/23 PHP
基于PHP 面向对象之成员方法详解
2013/05/04 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
简单实现php上传文件功能
2017/09/21 PHP
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
原生JavaScript生成GUID的实现示例
2014/09/05 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
如何表示python中的相对路径
2020/07/08 Python
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
C#可否对内存进行直接的操作
2015/02/26 面试题
高级人员简历的自我评价分享
2013/11/03 职场文书
《值日生》教学反思
2014/02/17 职场文书
个人贷款担保书
2014/04/01 职场文书
节能环保口号
2014/06/12 职场文书
机械专业求职信范文
2014/07/15 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
给客户的检讨书
2014/12/21 职场文书
社区节水倡议书
2015/04/29 职场文书
javaScript Array api梳理
2021/03/31 Javascript
PyTorch 如何自动计算梯度
2021/05/23 Python