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 BeautifulSoup使用方法详解
Nov 21 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 Python
用Python编写一个简单的CS架构后门的方法
Nov 20 Python
python实现弹跳小球
May 13 Python
python读取图片的几种方式及图像宽和高的存储顺序
Feb 11 Python
python闭包与引用以及需要注意的陷阱
Sep 18 Python
pycharm 实现光标快速移动到括号外或行尾的操作
Feb 05 Python
Django视图类型总结
Feb 17 Python
PyTorch 如何设置随机数种子使结果可复现
May 12 Python
OpenCV-Python使用cv2实现傅里叶变换
Jun 09 Python
浅谈Python响应式类库RxPy
Jun 14 Python
python库Tsmoothie模块数据平滑化异常点抓取
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
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
javascript 单选框,多选框美化代码
2008/08/01 Javascript
document.getElementById介绍
2011/09/13 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
2014/04/30 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
JavaScript实现自动对页面上敏感词进行屏蔽的方法
2015/07/27 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
实例分析编写vue组件方法
2019/02/12 Javascript
JS module的导出和导入的实现代码
2019/02/25 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
Python3实现Web网页图片下载
2016/01/28 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
python 换位密码算法的实例详解
2017/07/19 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
Melissa香港官网:MDreams
2016/07/01 全球购物
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
《在大海中永生》教学反思
2014/02/24 职场文书
实习生岗位职责
2014/04/12 职场文书
创业的9条正确思考方式
2019/08/26 职场文书
MATLAB 如何求取离散点的曲率最大值
2021/04/16 Python