【python学习】基础篇-常用模块-pickle模块:序列化和反序列化

pickle模块是Python标准库中用于序列化和反序列化的模块。通过pickle模块,可以将Python对象转换为字节流(序列化),也可以将字节流恢复为Python对象(反序列化)。

以下是pickle模块的一些常用函数:

  1. dump(obj, file, protocol=None, *, fix_imports=True)
    将Python对象obj序列化并写入文件file中。
    可以设置协议版本protocol,默认为最高版本。
    fix_imports参数表示是否修复Python 2中的导入问题。
import pickle

data = {'a': 1, 'b': 2, 'c': 3}
with open('data.pkl', 'wb') as f:
    pickle.dump(data, f)
  1. load(file, *, fix_imports=True, encoding=‘ASCII’, errors=‘strict’)
    从文件file中读取字节流并反序列化为Python对象。
    可以设置fix_imports参数表示是否修复Python 2中的导入问题。
    encoding和errors参数分别表示文件编码和错误处理方式。
import pickle

with open('data.pkl', 'rb') as f:
    data = pickle.load(f)
    print(data)

3.dumps(obj, protocol=None, *, fix_imports=True)
将Python对象obj序列化为字节流。
可以设置协议版本protocol,默认为最高版本。
fix_imports参数表示是否修复Python 2中的导入问题。

import pickle

data = {'a': 1, 'b': 2, 'c': 3}
serialized_data = pickle.dumps(data)
print(serialized_data)

4.loads(s, *, encoding=‘ASCII’, errors=‘strict’)
将字节流s反序列化为Python对象。
可以设置encoding和errors参数分别表示字节流编码和错误处理方式。

import pickle

serialized_data = b'\x80\x04\x95\x0e\x00\x00\x00\x00\x00\x00\x00}\x94(\x8c\x05key\x94\x8c\x05value\x94u.'
data = pickle.loads(serialized_data)
print(data)

你可能感兴趣的:(【Python学习-基础篇】,python,学习)