pickle模块用于将Python对象序列化字节流。使用反序列化可以将字节流转换回Python对象。
pickle模块适用于多种一般Python对象:None,数字,字符串,元祖,列表和只包含可序列化对象的字典,用户定义类的实例(不会保存相应的类定义)。
pickle专为python设计,支持python所有的数据类型。但只能在python中使用,存储数据占空间大。
对象 ----->字节流
1: import pickle2: date = {'k1': 1, 'k2': 2}3: pickle_str = pickle.dumps(date)4: print(pickle_str)
将字节流写入文本:
1: with open('测试文本1.txt', 'wb') as f:
2: pickle.dump(date, f)
字节流 ----> 对象:
1: pickle_loads = pickle.loads(pickle_str)2: print(pickle_loads)
从文本中加载:
1: with open('测试文本1.txt', 'rb') as fp:
2: pickle_load = pickle.load(fp)3: print(pickle_load)
json模块用于使用JSON序列化和反序列化对象。它的格式只是JavaScript语法的子集。
json体积小,跨语言使用。但是在Python中它只支持intstrlist upledict这几种类型。
Python数据 ----> 特殊的字符串
1: import json
2: date = {'k1': 1, 'k2': 2}3:4: json_str = json.dumps(date)
5: print(json_str)
写入文本:
1: with open('测试文本1.txt', 'w') as f:
2: json.dump(date, f)
特殊的字符串 ----> Python数据
1: json_loads = json.loads(json_str)
2: print(json_loads)
写入文本:
1: with open('测试文本1.txt', 'r') as fp:
2: json_load = json.load(fp)
3: print(json_load)