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专有,不能跨语言