美文网首页
Python序列化与反序列化

Python序列化与反序列化

作者: juriau | 来源:发表于2018-09-25 11:30 被阅读5次

序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取并反序列化对象的状态,重新创建该对象。


Pickle

pickle模块实现了对一个python对象序列化和反序列化的二进制协议。"picking"是一个过程,它将一个python对象层次结构转化为字节流,"unpickling"则是个相反的过程。

"Pickling"(和"unpickling")在其他语言中也被称为"serialization","marshalling" or "flattening"。为了防止混淆,在python中我们叫它"unpickling"和"unpickling"。

常用方法

pickle.dump(obj, file, protocol=None, *, fix_imports=True)
将一个对象序列化并写入打开的文件对象中。
注:文件对象必须是"wb"属性。

pickle.dumps(obj, protocol=None, *, fix_imports=True)
返回这个对象序列化的二进制形式,而不把它写到一个文件。

pickle.load(file, *, fix_imports=True, encoding="ASCII", errors="strict")
从文件中读取并返回被序列化的对象。
注:文件对象必须是"rb"属性。

pickle.loads(bytes_object, *, fix_imports=True, encoding="ASCII", errors="strict")
从字节流中读取并返回被序列化的对象。


Json

json同样最常用的是这四个方法。dumps(),dump()用于序列化,而loads(),load()用于反序列化。

区别于 pickle
  • JSON是一个文本序列化格式(它输出unicode文本,虽然大部分时间它被编码为utf-8),但是pickle是一个二进制序列化格式
  • JSON是人类可读的,然而pickle不是。
  • JSON是在Python之外广泛应用的而且可以和别的语言相互使用的,而pickle是Python专属的。
  • JSON默认情况下只能编译Python内置类型的子集,不能编译常规的class。pickle可以代表极其庞大的Python类型(其中许多是自动的,通过巧妙地使用Python的内省工具;复杂的案例可以通过实现特定的对象API来解决)。

相关文章

  • python序列化与反序列化

    json序列化与反序列化 序列化:dumps()/dump(),将python中字典类型的对象序列化后,转化成js...

  • 序列化和反序列细节处理

    python 中pickle 和 json 都是序列化和反序列化的模块。 关于序列化和反序列化 序列化和反序列化[...

  • 使用json模块

    json模块是python内置的用于序列化的模块。 序列化和反序列化 序列化就是将python类型的数据结构转换为...

  • python 实现list和dict的可序列化方案

    python原生的list与dict并不支持序列化,想要实现序列化,必须借助设计;python提供魔法方法gets...

  • Java序列化与反序列化

    问题 Java序列化与反序列化是什么?为什么需要序列化与反序列化?有什么好处?如何实现Java序列化与反序列化? ...

  • 序列化和反序列化的概念

    1序列化:把对象转为字节序列的过程 为序列化; 2相反:字节---------->对象 为反序列化 3 序列化的场...

  • Pickle 反序列化漏洞

    序列化与反序列化基础 我们知道各大语言都有其序列化数据的方式,Python当然也有,官方库里提供了一个叫做pick...

  • Python序列化pickle标准库

    听过Python序列化pickle标准库吗? 序列化 序列化 (Serialization)是将对象的状态信息转换...

  • Python 入门之 内置模块 -- 序列化模块(json模块、

    Python 入门之 内置模块 -- 序列化模块(json模块、pickle模块) 1、序列化 Python中这种...

  • DRF之序列化

    序列化 把Python中对象转换为json格式字符串 反序列化 把json格式转为为Python对象。 序列化两大...

网友评论

      本文标题:Python序列化与反序列化

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