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中while循环语句用法简单实例
May 07 Python
python中函数总结之装饰器闭包详解
Jun 12 Python
python 字符串转列表 list 出现\ufeff的解决方法
Jun 22 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
Python实现螺旋矩阵的填充算法示例
Dec 28 Python
python skimage 连通性区域检测方法
Jun 21 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
Jan 03 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
Python基于模块Paramiko实现SSHv2协议
Apr 28 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
Oct 15 Python
如何利用python实现列表嵌套字典取值
Jun 10 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
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
php取出数组单个值的方法
2018/03/12 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
vue实现购物车的监听
2020/04/20 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
python Pandas 读取txt表格的实例
2018/04/29 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
对numpy中的where方法嵌套使用详解
2018/10/31 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
音频处理 windows10下python三方库librosa安装教程
2020/06/20 Python
python RSA加密的示例
2020/12/09 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
求职信需要的五点内容
2014/02/01 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
员工保密承诺书
2014/05/28 职场文书
廉政承诺书范文
2015/04/28 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
Java 数组内置函数toArray详解
2021/06/28 Java/Android
JS实现数组去重的11种方法总结
2022/04/04 Javascript
如何利用python创作字符画
2022/06/25 Python