pickle模块

pickle将python中所有的数据类型,直接转换成bytes数据的序列化过程;将bytes数据转换成python中原来的数据类型的反序列化过程

一、应用场景:与json几乎一样,但可以多次写入和多次读取

import pickle

# bys = pickle.dumps([1, 2, 3])
# print(bys, type(bys))
#
# bys1 = pickle.dumps((1, 2, 3))
# print(bys1, type(bys1))
# res = pickle.loads(bys1)
# print(res)
#
# bys = pickle.dumps(set('123'))
# print(bys, type(bys))


# 把序列化的内容写入文件当中
# with open('c.txt', mode='wb') as f:
#     pickle.dump([1, 2, 3], f)

# 把文件中的内容反序列化成python数据
# with open('c.txt', mode='rb') as f:
#     print(pickle.load(f))


# 多次pickle数据到同一个文件中
# with open('c.txt', mode='ab') as f:
#     for i in range(3):
#         pickle.dump('
嘻嘻', f)
# 从文件反序列化
# with open('c.txt', mode='rb') as f:
#     for i in range(4):
#         res = pickle.load(f)
#         print(res)

二、小结

json:
1.不是所有的数据都可以序列化为字符串
2.不能多次对同一个文件序列化
3.json数据可以跨语言

pickle:
1.所有的python数据类型都可以序列化为bytes数据类型
2.可以多次对同一个文件序列化
3.python专有,不能跨语言

原文地址:https://www.cnblogs.com/GOD-L/p/13435151.html