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将多个文本文件合并为一个文本的代码(便于搜索)
Mar 13 Python
Python pass详细介绍及实例代码
Nov 24 Python
深入浅析python 中的匿名函数
May 21 Python
Python实现迭代时使用索引的方法示例
Jun 05 Python
python得到一个excel的全部sheet标签值方法
Dec 10 Python
详解python算法之冒泡排序
Mar 05 Python
Python实现简单的列表冒泡排序和反转列表操作示例
Jul 10 Python
pytorch之ImageFolder使用详解
Jan 06 Python
利用pandas向一个csv文件追加写入数据的实现示例
Apr 23 Python
python访问hdfs的操作
Jun 06 Python
python3中TQDM库安装及使用详解
Nov 18 Python
python 管理系统实现mysql交互的示例代码
Dec 06 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的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
php实现三级级联下拉框
2016/04/17 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
asp 取文本框名称代码
2008/12/02 Javascript
js几个验证函数代码
2010/03/25 Javascript
事件绑定之小测试  onclick && addEventListener
2011/07/31 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
2014/05/11 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
jQuery 移除事件的方法
2020/06/20 jQuery
TensorFlow变量管理详解
2018/03/10 Python
python读取中文txt文本的方法
2018/04/12 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
python3去掉string中的标点符号方法
2019/01/22 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
Python截图并保存的具体实例
2021/01/14 Python
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
超市中秋节活动方案
2014/02/12 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
公司委托书格式范文
2014/04/04 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
解决vue中provide inject的响应式监听
2022/04/19 Vue.js