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 环境搭建 及python-3.4.4的下载和安装过程

    python 环境搭建 及python-3.4.4的下载和安装过程

    这篇文章主要介绍了python 环境搭建 python-3.4.4的下载和安装过程,文中给大家补充介绍了pycharm的基本用法,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • 利用Python制作百度图片下载器

    利用Python制作百度图片下载器

    这篇文章主要介绍了利用Python制作的一个百度图片下载器,可以显示实时的下载进度,文中的示例代码讲解详细,感兴趣的可以跟随小编学习一下
    2022-01-01
  • python编写的最短路径算法

    python编写的最短路径算法

    本文给大家分享的是python 无向图最短路径算法:请各位大大指教,继续改进。(修改了中文字符串,使py2exe中文没烦恼),需要的朋友可以参考下
    2015-03-03
  • python按综合、销量排序抓取100页的淘宝商品列表信息

    python按综合、销量排序抓取100页的淘宝商品列表信息

    这篇文章主要为大家详细介绍了python按综合、销量排序抓取100页的淘宝商品列表信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • python如何删除文件、目录

    python如何删除文件、目录

    在本篇文章里小编给大家整理的是关于python删除文件、目录的方法,需要的朋友们可以学习下。
    2020-06-06
  • Python实现的爬取网易动态评论操作示例

    Python实现的爬取网易动态评论操作示例

    这篇文章主要介绍了Python实现的爬取网易动态评论操作,结合实例形式分析了Python针对网易评论正则爬取及json格式数据转换、提取等相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • Python项目管理工具Rye的工作原理

    Python项目管理工具Rye的工作原理

    在开发Python项目时,有时会在一台电脑上,同时存在多个python项目,而且每个项目的python版本和依赖可能都不一样,此时需要使用python项目管理工具来进行管理,rye是一个python项目管理工具,本文简单介绍rye的工作原理
    2023-07-07
  • Python实现Socket通信建立TCP反向连接

    Python实现Socket通信建立TCP反向连接

    本文将记录学习基于 Socket 通信机制建立 TCP 反向连接,借助 Python 脚本实现主机远程控制的目的。感兴趣的可以了解一下
    2021-08-08
  • 如何解决pycharm调试报错的问题

    如何解决pycharm调试报错的问题

    在本篇内容里小编给大家整理的是一篇关于如何解决pycharm调试报错的问题文章,需要的朋友们可以学习参考下。
    2020-08-08
  • Python TCPServer 多线程多客户端通信的实现

    Python TCPServer 多线程多客户端通信的实现

    这篇文章主要介绍了Python TCPServer 多线程多客户端通信的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论