稍等片刻,正在加载中...

Python之序列化pickle

pickle是一个序列化模块。

对象序列化与文件对象

import pickle

file_name = './demo.txt'
x,y,z = 'hello1', 100, 200


with open(file_name, 'wb') as fp:
    # 对象序列化到文件对象
    pickle.dump(x, fp)
    pickle.dump(y, fp)
    pickle.dump(z, fp)

with open(file_name, 'rb') as f:
    for _ in range(3):
        # 对象反序列化,从文件读取数据
        a = pickle.load(f)
        print(f"读取到的内容:{a}, 类型为:{type(a)}")

输出打印结果如下:

读取到的内容:hello1, 类型为:<class 'str'>
读取到的内容:100, 类型为:<class 'int'>
读取到的内容:200, 类型为:<class 'int'>

对象序列化与bytes对象

import pickle

dict1 = {'aa': 11, 'bb': 22}

dict_data = pickle.dumps(dict1)
print(dict_data)

data = pickle.loads(dict_data)
print(data, type(data))


list1 = [1, 2, 3]
list_data = pickle.dumps(list1)
print(list_data)

data_list = pickle.loads(list_data)
print(data_list, type(data_list))

输出打印结果如下:

b'\x80\x03}q\x00(X\x02\x00\x00\x00aaq\x01K\x0bX\x02\x00\x00\x00bbq\x02K\x16u.'
{'aa': 11, 'bb': 22} <class 'dict'>
b'\x80\x03]q\x00(K\x01K\x02K\x03e.'
[1, 2, 3] <class 'list'>
posted @ 2021-03-11 21:55  一切皆往事  阅读(153)  评论(0编辑  收藏  举报