python 序列化 Python 对象

5.21 我们需要将python对象序列化,然后将其保存到文件中、存储到数据库中或者通过网络链接进行传输
  • 可以使用pickle模块。

  • pickle dump将数据写入文件

>>> import pickle
>>> data =[1,2,3,4,5]
>>> f = open('pickle.txt','wb')
>>> pickle.dump(data,f)
  • 如果要将对象转储为字符串则使用dumps
>>> s =pickle.dumps(data)
>>> s
b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04K\x05e.'
>>> f
<_io.BufferedWriter name='pickle.txt'>
>>>
  • 如果想从字节流中创建对象,使用load或loads函数
>>> f =open('pickle.txt','rb')
>>> d = pickle.load(f)
>>> d
[1, 2, 3, 4, 5]
>>> s = pickle.dumps(data)
>>> s
b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04K\x05e.'
>>> d1 = pickle.loads(s)
>>> d1
[1, 2, 3, 4, 5]
>>>
  • 如果要处理多个对象
  • 写入多个对象到文件f1
>>> f1 =open('pickle1.txt','wb')
>>> pickle.dump([1,2,3],f1)
>>> pickle.dump('hello',f1)
>>> pickle.dump({'a','b'},f1)
>>> f1.close()
  • 读取f1文件,使用pickle 顺序load f1文件
>>> f1 =open("pickle1.txt",'rb')
>>> pickle.load(f1)
[1, 2, 3]
>>> pickle.load(f1)
'hello'
>>> pickle.load(f1)
{'b', 'a'}
>>> pickle.load(f1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
EOFError: Ran out of input
>>>
  • 待更新pickle详细操作。。。。。。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容