一起学习网 一起学习网


python中字符串类型json操作的注意事项

网络编程 python中字符串类型json操作的注意事项 06-22

python操作json的方法有

json.dumps——将json对象(字典)转换为字符串对象

json.loads——将字符串对象转换为json对象(字典)

如果定义json对象

jsonstring1={"results":[{"id":"1","name":"u9ed8u8ba4u5206u7ec4","policy":"4","timer_scan_setting":"{"last":"10.29.13","setting":"fulldisk","type":"day","hour":"13"}"},
{"id":"2","name":"u6d4bu8bd5u7684","policy":"1","timer_scan_setting":"{"last":"10.29.15","setting":"fulldisk","type":"day","hour":"15"}"},{"id":"4","name":"u4ea7u54c1u7ec4","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":"u9ed8u8ba4u5206u7ec4","policy":"4","timer_scan_setting":"{"last":"10.29.13","setting":"fulldisk","type":"day","hour":"13"}"},
{"id":"2","name":"u6d4bu8bd5u7684","policy":"1","timer_scan_setting":"{"last":"10.29.15","setting":"fulldisk","type":"day","hour":"15"}"},{"id":"4","name":"u4ea7u54c1u7ec4","policy":"3","timer_scan_setting":"{"last":"10.8.15","setting":"disable"}"}]}'''

这个只是对上面的json对象加了三引号转为一个字符串,所以理论上可以直接loads之后就按json操作

json.loads(jsonstring2)

但是实际却报错了,原因是因为大括号前后的双引号没有去掉,网上很多在线的json格式化工具对于这些双引号不会报错,但是python会,而定义json对象时加了双引号操作却没报错,是因为不加里面的内容会被转义,所以千万不能完全相信网上的json格式校验工具。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对积木网的支持。

Windows和Linux下Python输出彩色文字的方法教程
前言最近在项目中需要输出彩色的文字来提醒用户,以前写过,但是只能在win上面运行。今天搜了下看有没有在win和Linux上通用的输出彩色文字的模块,

Python判断变量是否为Json格式的字符串示例
Json介绍全名JavaScriptObjectNotation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。现在也常用于http请

python3读取MySQL-Front的MYSQL密码
前言同样的套路又来了,继续尝试从配置文件中读取敏感的信息,这次轮到的是MySQL-Front。MySQL-Front就一款开源的mysql管理工具,官方网站http://www.mysqlfron


编辑:一起学习网

标签:对象,字符串,操作,报错,是因为