一、JSON解读:本质就是一个有规则的字符串
- 用作轻量级数据交换格式(个人觉得,重量级的 xml 更合适些)
- 所有语言都支持解析字符串
- 把【对象】转换成【字符串】叫做序列化(编码过程)
- 把【字符串】转换成【对象】叫做反序列化(解码过程)
下面介绍 python 中 json 的使用(只用常用的列表和字典举例)。
二、常用4个方法(必选参数):
注意细节:
- 转换成字符串后,单引号变为双引号
- 把字符串转回对象使用时,要把字符串里的单引号转换成双引号
1、json.dumps(对象):把 python 对象序列化成字符串
2、json.dump(对象,文件对象):把 python 对象序列化成字符串,并存储到文件
3、json.loads(字符串):把字符串反序列化成 python 对象
4、json.load(文件对象):把文件对象打开,并反序列化成 python 对象
三、四个方法(可选参数)
dumps 和 dump 方法看源码 还有这些参数可用(介绍常用的)
skipkeys=False, ensure_ascii=True, check_circular=True,
allow_nan=True, cls=None, indent=None, separators=None,
default=None, sort_keys=False
- skipkeys:判断字典的 key 值是不是python 的基本类型(str、int、float、bool、None)skipkeys=False:默认为False,不是基本类型,则报错;如果为True:不是基本类型跳过,不报错
- ensure_ascii=True:默认为True,转义;如果为 False:可以包含非 ascii 码
- indent=2:缩进2个字符。默认为None,不进行缩进;
- separators=None:分割。默认是【逗号+空格、冒号+空格】进行分割;如果制定分割符或去掉空格则 separators=(',',':')
- sort_keys=False:按 key 排序
loads 和 load 方法看源码,还有这些参数可用(基本不用)
四、JSON 与 Python 对象的类型对应关系
json 模块 常用的你懂了吗?