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线程池(threadpool)模块使用笔记详解
Nov 17 Python
Python pyinotify日志监控系统处理日志的方法
Mar 08 Python
Python基于FTP模块实现ftp文件上传操作示例
Apr 23 Python
Pycharm 操作Django Model的简单运用方法
May 23 Python
Flask框架Flask-Login用法分析
Jul 23 Python
在双python下设置python3为默认的方法
Oct 31 Python
Django 路由控制的实现代码
Nov 08 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
使用python将excel数据导入数据库过程详解
Aug 27 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
基于pytorch 预训练的词向量用法详解
Jan 06 Python
解决python绘图使用subplots出现标题重叠的问题
Apr 30 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操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
php jsonp单引号转义
2014/11/23 PHP
PHP实现文件下载详解
2014/11/27 PHP
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
python字符串常用方法
2018/06/14 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
Python递归函数 二分查找算法实现解析
2019/08/12 Python
学习Django知识点分享
2019/09/11 Python
Python接收手机短信的代码整理
2020/08/02 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
野兽派官方旗舰店:THE BEAST 野兽派
2016/08/05 全球购物
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
办公室内勤工作职责
2013/12/11 职场文书
毕业生个人求职信范文分享
2014/01/05 职场文书
餐饮投资计划书
2014/04/25 职场文书
2015年班组工作总结
2015/04/20 职场文书
网吧温馨提示
2015/07/17 职场文书
公司保密管理制度
2015/08/04 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
创业计划书介绍
2019/04/24 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书