美文网首页
python 序列化 Python 对象

python 序列化 Python 对象

作者: 孙广宁 | 来源:发表于2022-05-21 23:07 被阅读0次
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详细操作。。。。。。

相关文章

网友评论

      本文标题:python 序列化 Python 对象

      本文链接:https://www.haomeiwen.com/subject/dpvxprtx.html