美文网首页
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