美文网首页
Pickle 小结

Pickle 小结

作者: csdongxian | 来源:发表于2018-07-24 15:28 被阅读0次

    何为序列化

    pickle可以序列(serializing)和反序列化(deserializing)python中的对象 [Python中的pickle]
    1. 序列化:ptyhon对象 (list, dict, etc.) → 字节流;反之,则为反序列化。
    2. 字节流中包括重建对象所需的所有信息。

    如何序列化

    >>> import pickle
    >>> a = [1, 2, 3]
    >>> pickle.dump(a, open('test_file1', 'wb'))
    >>> b= pickle.load(open('test_file1', 'rb'))
    >>> print(a == b)
    True
    

    用来做什么

    pickle有很多应用场景,一下列举一些常用的情形:[pickle常用例子]

    1. 持久化(persistence):将程序的状态数据保存至磁盘,使得程序重启时能从退出时的状态继续进行。

    2. 在多核或者分布式系统中,传输python数据 (在python下,marshalling和序列化同意) [多进程和pickle]

      • pickle 的安全性不足,永远不要反序列化不可信来源的 pickle 字节流。
      • [并行计算示例]
    3. 在数据库中,保存python对象。

    4. 【不懂本条意思】将python对象转换为字节流,从而作为字典的 key:

      • 【不懂本条意思】两个相同的对象,可以被序列化得到不同的字节流,甚至同一个对象序列化两次也会得到不同的字节流,这是因为pickle包含了引用计数信息(reference count information)

    相关文章

      网友评论

          本文标题:Pickle 小结

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