python-- pickle 序列化(python是什么意思)

网友投稿 352 2022-08-25


python-- pickle 序列化(python是什么意思)

pickle

dump的结果是bytes, dump用的f文件句柄需要以wb的形式打开, load所用的f是'rb'模式

支持几乎所有对象的序列化对于对象的序列化需要这个对象对应的类在内存中对于多次dump / load的操作做了良好的处理

import pickledic = {1: (12, 3, 4), ('a', 'b'): 4}pic_dic = pickle.dumps(dic)print(pic_dic) # bytes类型new_dic = pickle.loads(pic_dic)print(new_dic)

结果:

b'\x80\x03}q\x00(K\x01K\x0cK\x03K\x04\x87q\x01X\x01\x00\x00\x00aq\x02X\x01\x00\x00\x00bq\x03\x86q\x04K\x04u.'{1: (12, 3, 4), ('a', 'b'): 4}

pickle支持几乎所有对象的

import pickleclass Student: def __init__(self, name, age): self.name = name self.age = agezou = Student('aa', 22)ret = pickle.dumps(zou)pickle_data = pickle.loads(ret)print(pickle_data.name)print(pickle_data.age)

结果:

aa22

import pickleclass Student: def __init__(self, name, age): self.name = name self.age = agezou = Student('aaa', 83)with open('pickle_demo', 'wb') as f: pickle.dump(zou, f)with open('pickle_demo', 'rb') as f: pic = pickle.load(f) print(pic.name) # 没有上面的类就会报错,因为句话是从实例化类里拿name属性

结果:

aaa

import picklewith open('pickle_demo', 'wb') as f: pickle.dump({'k1': 'v1'}, f) pickle.dump({'k11': 'v1'}, f) pickle.dump({'k11': 'v1'}, f) pickle.dump({'k12': [1, 2, 3]}, f) pickle.dump(['k1', 'v1', 'l1'], f)with open('pickle_demo', 'rb') as f: while True: try: print(pickle.load(f)) except EOFError: break

结果:

{'k1': 'v1'}{'k11': 'v1'}{'k11': 'v1'}{'k12': [1, 2, 3]}['k1', 'v1', 'l1']


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python-- pickle 序列化(python编译器)
下一篇:Spring data jpa @Query update的坑及解决
相关文章

 发表评论

暂时没有评论,来抢沙发吧~