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

 更新时间:2017年05月02日 15:49:23   投稿:daisy  
这篇文章主要给大家介绍了python中字符串类型json操作的一些注意事项,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

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中的super用法详解

    Python中的super用法详解

    这篇文章主要介绍了Python中的super用法详解,本文讲解了关于super问题的发现与提出、走进Python的源码世界分析super的实现、延续的讨论super等内容,需要的朋友可以参考下
    2015-05-05
  • django中静态文件配置static的方法

    django中静态文件配置static的方法

    我们可以使用Template 设置我们的网页,同时,一个完美的网页需要css,js,image 等静态文件的支持,这篇文章主要介绍了django中静态文件配置static的方法,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Python实现统计给定字符串中重复模式最高子串功能示例

    Python实现统计给定字符串中重复模式最高子串功能示例

    这篇文章主要介绍了Python实现统计给定字符串中重复模式最高子串功能,涉及Python针对字符串的遍历、排序、切片、运算等相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • python对Excel按条件进行内容补充(推荐)

    python对Excel按条件进行内容补充(推荐)

    这篇文章主要介绍了python对Excel按条件进行内容补充的相关知识,非常不错,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • python如何统计代码运行的时长

    python如何统计代码运行的时长

    这篇文章主要介绍了python如何统计代码运行的时长,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python实现检测服务器是否可以ping通的2种方法

    Python实现检测服务器是否可以ping通的2种方法

    这篇文章主要介绍了Python实现检测服务器是否可以ping通的2种方法,本文分别讲解了使用ping和fping命令检测服务器是否可以ping通,需要的朋友可以参考下
    2015-01-01
  • python list转矩阵的实例讲解

    python list转矩阵的实例讲解

    今天小编就为大家分享一篇python list转矩阵的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • python opencv实现图片旋转矩形分割

    python opencv实现图片旋转矩形分割

    这篇文章主要为大家详细介绍了python opencv实现图片旋转矩形分割,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • python最长回文串算法

    python最长回文串算法

    这篇文章主要为大家详细介绍了python最长回文串算法的实践,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Tensorflow的可视化工具Tensorboard的初步使用详解

    Tensorflow的可视化工具Tensorboard的初步使用详解

    这篇文章主要介绍了Tensorflow的可视化工具Tensorboard的初步使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02

最新评论