json
Json是一种轻量级的数据交换格式。Json源自JavaScript语言,易于人类的阅读和编写,同时也易于机器解析和生成,是目前应用最广泛的数据交换格式。
![7abe3c72dbe946ebca411993accc292e.png](https://i-blog.csdnimg.cn/blog_migrate/9cecc9b956772107386b99921330359e.jpeg)
Json是跨语言,跨平台的,但只能对Python的基本数据类型做操作,对Python的类就无能为力。JSON格式和Python中的字典非常像。但是,json的数据要求用双引号将字符串引起来,并且不能有多余的逗号。这是因为在别的语言中,双引号引起来的才是字符串,单引号引起来的是字符;Python程序员习惯性的在列表、元组或字典的最后一个元素的后面加个逗号,这在json中是不允许的,需要特别注意。
在Python中,很多场合是需要使用json的。比如socket通信中,你能直接发送一个列表给对方吗?显然是不行的,因为socket是基于bytes类型进行字节发送的。这时候就可以通过json将列表转换成字符串,再encode()成bytes类型,然后发送过去。
类型转换
将数据从Python转换到json格式,在数据类型上会有变化,如下表所示 :
![f8484f3bd4454b8f0bd974eeab690b86.png](https://i-blog.csdnimg.cn/blog_migrate/721de22ed750d0076730c6970f822e12.jpeg)
使用方法
json模块的使用其实很简单,对于绝大多数场合下,我们只需要使用下面四个方法就可以了:
![b64a95de7d71397110d5ec151f8c602e.png](https://i-blog.csdnimg.cn/blog_migrate/a1e11145a1b368ed7438823d83d9fb02.jpeg)
案例
![e8e9d97463fc6ebd923e7f07db9543f8.png](https://i-blog.csdnimg.cn/blog_migrate/274fe684b14e5afe0197c1dc1f846762.jpeg)
仔细观察四个方法的名称,很好记忆的,要转化成json就‘dump’,要从json转化成Python就‘load’;要根据字符串转化就加‘s’,要从文件进行转化就不加‘s’。
需要注意的是json模块不支持bytes类型,要先将bytes转换为str格式
![e9c426b10e75a5ad891b98c8338efb15.png](https://i-blog.csdnimg.cn/blog_migrate/45ed9762e5f452601904c468e5e0ca08.jpeg)