一、序列化的一些简单概念
我们平常使用的python对象所进行的操作是在内存中,当程序关闭就会被清空,所以我们需要用一种合适的方法将这些数据保存下来。
为了将我们的数据进行永久存储,需要引入序列化(pickling/serialization)的概念。
序列化的定义:将复杂的python数据结果转换成一个二进制数据集合(数据流)。反序列化:从数据流(字符串形式)重新构造复杂的python数据结构。
序列化的好处:我们可以通过网络或本地存储介质讲这些数据流保存或传输。
序列化的方法:引入json、pickling、marshal、shelve,其中最常用的是json。
二、JSON标准库
2.1 基本用法
json模块的序列化和反序列化方法分别是dumps和loads,json.dumps()和json.dump()将一个python对象转换成json串,json.loads()和json.load()将一个json串还原成python对象。
json.dump()和json.dumps()的区别
json.dump()处理的是文件对象,而json.dumps()处理的是字符串对象。
json.load()和json.loads()的区别
json.load()处理的是文件对象,而json.loads()处理的是字符串对象。
2.2 json.dumps()
将python的数据类型转换成json字串
语法格式:json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent