Python的marshal模块简介

Python的marshal模块,顾名思义也是负责在Python数值与二进制字节对象之间进行转换的。但是,marshal模块仅供Python解析器内部用作对象的序列化,不推荐开发人员使用该模块处理Python对象的序列化和反序列化。

marshal模块不是通用的序列化/反序列化模块,而是以读写.pyc文件中的Python代码为目的设计的。marshal模块提供的函数可以读写二进制对象为Python数值。这里的二进制对象是Python字节定义的独特二进制格式,与所在机器的体系结构无关。

  • load(file),从文件读取Python数值并返回该值
  • loads(bytes),将读入的字节对象转换为Python数值
  • dump(value, file[, version]),将Python数值写入到文件
  • dumps(value[, version]),将读入的Python数值转换为一个字节对象
  • version,当前marshal模块使用的二进制格式的版本

事实上,要序列化或反序列化Python对象,建议使用pickle模块。如在RPC调用中对Python对象进行远程传输,则使用pickle模块。

如果要对Python对象进行持久化,则使用shelve模块。

参考链接:

https://docs.python.org/3.5/library/marshal.html
https://github.com/python/cpython/blob/3.5/Include/marshal.h
https://github.com/python/cpython/blob/3.5/Python/marshal.c

    原文作者:易生一世
    原文地址: https://blog.csdn.net/taiyangdao/article/details/78409331
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞