详解Python 序列化Serialize 和 反序列化Deserialize

yipeiwu_com5年前Python基础

详解Python 序列化Serialize 和 反序列化Deserialize

序列化 (serialization)

序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,

它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。

序列化和反序列化的目的  

1、以某种存储形式使自定义对象持久化;  

2、将对象从一个地方传递到另一个地方。  

3、使程序更具维护性

序列化

  由于存在于内存中的对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象写入到磁盘或者其他介质中,这个过程就叫做序列化。

反序列化

  反序列化恰恰是序列化的反向操作,也就是说,把已存在在磁盘或者其他介质中的对象,反序列化(读取)到内存中,以便后续操作,而这个过程就叫做反序列化。

  概括性来说序列化是指将对象实例的状态存储到存储媒体(磁盘或者其他介质)的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。

Python中可以使用 Pickle 和 json, 以及自定义序列化反序列化函数进行处理需要序列化的数据。

代码如下:

import pickle
import json
d = [1,2,3,4]
print(pickle.dumps(d))
print(type(pickle.dumps(d)))

print(json.dumps(d))
print(type(json.dumps(d)))

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持,如有疑问请留言或者到本站社区交流讨论,大家共同进步!

相关文章

Python设计模式之观察者模式实例

关于设计模式中的观察者模式,定义如下(维基百科): 觀察者模式(有時又被稱為發布/訂閱模式)是軟體設計模式的一種。在此種模式中,一個目標物件管理所有相依於它的觀察者物件,並且在它本身的狀...

python中的for循环

python中的for循环

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。 语法: for循环的语法格式如下: for iterating_var in sequence:...

python+django快速实现文件上传

python+django快速实现文件上传

对于web开来说,用户登陆、注册、文件上传等是最基础的功能,针对不同的web框架,相关的文章非常多,但搜索之后发现大多都不具有完整性,对于想学习web开发的新手来说就没办法一步一步的操作...

python实现可视化动态CPU性能监控

python实现可视化动态CPU性能监控

本文实例为大家分享了python可视化动态CPU性能监控的具体代码,供大家参考,具体内容如下 打算开发web性能监控,以后会去学js,现在用matp来补救下,在官网有此类模板,花了一点时...

对pyqt5多线程正确的开启姿势详解

如下所示: # -*- coding: utf-8 -*- import sys from PyQt5.QtCore import QThread, pyqtSignal fro...