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使用PIL模块实现给图片打水印的方法
May 22 Python
初步认识Python中的列表与位运算符
Oct 12 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
Dec 25 Python
浅析Python中else语句块的使用技巧
Jun 16 Python
Python二叉树的定义及常用遍历算法分析
Nov 24 Python
python 删除字符串中连续多个空格并保留一个的方法
Dec 22 Python
浅谈python标准库--functools.partial
Mar 13 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
基于Python执行dos命令并获取输出的结果
Dec 30 Python
Django ValuesQuerySet转json方式
Mar 16 Python
next在python中返回迭代器的实例方法
Dec 15 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 02 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获取栏目的所有子级和孙级栏目的ID号示例
2014/04/01 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
php经典算法集锦
2015/11/14 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
jQuery.each使用详解
2015/07/07 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
JS实现li标签的删除
2019/04/12 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
python基于Selenium的web自动化框架
2019/07/14 Python
一文读懂Python 枚举
2020/08/25 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
物流专业大学应届生求职信
2013/11/03 职场文书
房地产还款计划书
2014/01/10 职场文书
个人工作总结范文2014
2014/11/07 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python