1.1 JSON数据
- JSON(JavaScript Object Notation的简称,JS 对象标记)已经成为通过HTTP请求在Web浏览器和其他应⽤程序之间发送数据的标准格式之⼀。
- JSON是一种轻量级的数据交换格式。JSON的数据格式其实就是python里面的字典格式(存在区别),里面可以包含方括号括起来的数组,也就是python里面的列表。

2.1 JSON模块
- 在python中提供了专门处理JSON格式的模块之一即是JSON模块。
- 要使用JSON模块必须先导入该模块:
import json
2.1.1 序列化和反系列化
- 序列化:服务器端根据前端的请求,从数据库获取数据组织成前端可以识别的格式发给前端。
- 反序列化:客户端接收服务器返回的数据,展示到屏幕上。
- python的Json模块序列化与反序列化的过程分别是 encoding和 decoding。
encoding-把一个Python对象编码转换成Json字符串,对应JSON模块的dump和dumps函数
decoding-把Json格式字符串解码转换成Python对象,对应JSON模块的load和loads函数。
2.1.2 数据类型转换
-
JSON可以表示4种主类型数据和2种数据结构:
1.字符串 string
2.数字 number
3.布尔类 boolean
4.空值 null
5.对象 object
6.数组 array -
JSON和python之间的数据转换对应关系如下:
| JSON | python |
|---|---|
| string | str |
| number(int) | int |
| number(real) | float |
| true | True |
| false | False |
| null | None |
| object | dict |
| array | list |
2.2 读取JSON(反序列化)
2.2.1 json.loads方法
- json.loads方法可以将包含了一个JSON数据的str, bytes或者bytearray对象, 转化为一个python数据对象。
- 语法:
json.loads(
s,
*,
encoding=None,
cls=None,
object_hook=None,
parse_float=None,
parse_int=None,
parse_constant=None,
object_pairs_hook=None,
**kw,
)

2.2.2 双引号注意
- 在JSON中, 字符串数据只能放在双引号中(因为java等其它语言有使用双引号表示字符串,单引号不表示字符串)。
- json.loads方法处理的字符串的JSON内容中, 字符串必须使用双引号,否则就会发生解码错误。
* 被处理的Python字符串是包含在双引号中的, 那么JSON中的双引号就需要转义。

2.2.3 处理JSON数据文件
- 当JSON数据是保存在一个文件中的时候, json.load方法可以用来从这个文件中读取数据, 并转换为Python对象。
- json.load方法的第一个参数就是指向JSON数据文件的文件类型对象。

2.3 生成JSON(序列化)
2.3.1 json.dump/dumps方法
- json.dumps方法可以将Python对象转换为JONS格式。
- 语法:
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
* python中的类型与JSON的数据转换关系如下:
| python | JSON |
|---|---|
| str | string |
| int,float… | number |
| number(real) | float |
| True | true |
| False | false |
| None | null |
| object | dict |
| list,tuple | array |
2.3.2 参数说明
-
indent参数:控制JSON字符串的换行和缩进效果
1.默认值为None,无换行和缩进
2.当indent为0或者负数时, JSON字符会包含换行
3.当indent为正整数时, 除了换行, JSON还会以指定数量的空格为单位在对象层次间进行缩进
4.indent可以是str,JSON会以str内容为单位进行缩进

2.3.3 生成JSON文件
- 需要将生成的JSON数据保存到文件时, 可以使用json.dump方法。
- 该方法比json.dumps多了一个参数fp, 这个参数就是用来保存JSON数据的文件对象。


3.1 利用pandas读取和生成JSON
3.1.1 read_json()
- pandas.read_json()可以⾃动将特别格式的JSON数据集转换为Series或DataFrame。

3.1.2 to_json()
- pandas.to_json()可以将数据从pandas输出到JSON。


本文详细介绍了Python中处理JSON数据的方法,包括JSON模块的使用,如序列化和反序列化,json.loads和json.dumps函数,以及如何处理JSON数据文件。此外,还探讨了pandas库在读取和生成JSON数据方面的应用。

被折叠的 条评论
为什么被折叠?



