一、序列化与反序列化
1、序列化简介
我们平常对 python 对象所进行的操作是在内存中的,当程序关闭时这些对象就会被清空,所以我们需要用一种合适的方法将这些数据保存下来。
为了将我们的数据进行永久存储,需要引入序列化(pickling/serialization)的概念。
- 序列化的定义:将 python 对象编码成一个二进制数据集合(数据流);反序列化:将数据流解码成 python 对象。
- 序列化的好处:我们可以通过网络或本地存储介质将这些数据流进行传输或保存。
- 序列化的方法:引入 json、pickling、marshal、shelve 等,其中最常用的是 json。
序列化指的是把 Python的对象编码转换为 JSON格式的字符串;反序列化则相反,是把 JSON 格式字符串解码为 Python 数据对象。在Python标准库中,专门提供了JSON库来处理这个问题。
2、json 标准库
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写。
序列化方法:
- json.dumps():处理的是python对象,将 python 对象序列化为 json 字符串。
- json.dump():处理的是文件对象,将序列化后的 json 字串保存到文件。
反序列化方法: