Python序列化与反序列化pickle用法实例

这篇文章主要介绍了Python序列化与反序列化pickle用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

要将Python对象作为一个文件的形式保存到磁盘,就叫序列化;

当我们需要用到这个这对象,再从磁盘加载这个对象,就叫反序列化

Python自带的pickle可以帮我们实现,pickle这个单词是咸菜的意思,咸菜耐储存,是不是很形象呀?

对象的存储分为两步:

1.将对象在内存中的数据抓取取来,转换成一个有序的文本,这一步就是序列化

2.再将文本存储到磁盘中

代码如下

import pickle
class Bird(object):
	have_feather = True
reproduction_method = "egg"#
# 创建一个对象
summer = Bird()
pickle_string = pickle.dumps(summer)# 已被序列化成二进制数据
with open("summer.pkl", "wb") as fp:
	fp.write(pickle_string)
# dump方法可以把上面两步作为一步来完成:# with open(
	"summer.pkl", "wb") as fp: #pickle.dump(
	summer, fp)
# 从磁盘文件上恢复对象: 先读取文件, 再loads
with open("summer.pkl", "rb") as fp:
	summer = fp.read()# 先读取
summer = pickle.loads(summer)# 再序列化
print(summer.have_feather)# 或者用load方法, 一步到位# with open(
		"summer.pkl", "rb") as fp: #summer =
	pickle.load(fp)# print(summer.have_feather)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python使用Pickle库实现读写序列操作示例

    本文实例讲述了Python使用Pickle库实现读写序列操作.分享给大家供大家参考,具体如下: 简介 pickle模块实现了用于对Python对象结构进行序列化和反序列化的二进制协议."Pickling"是将Python对象转换为字节流的过程,"unpickling"是反向操作,由此字节流二进制文件或字节对象)转换回对象结构. 模块方法 pickle.dump(obj, file, protocol=None, *, fix_imports=True) 将obj以二

  • 详解Python之数据序列化(json、pickle、shelve)

    一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Python也是一样.很多时候我们会有这样的需求: 把内存中的各种数据类型的数据通过网络传送给其它机器或客户端: 把内存中的各种数据类型的数据保存到本地磁盘持久化: 2.数据格式 如果要将一个系统内的数据通过网络传输给其它系统或客户端,我们通常都需要先把这些数据转化为字符串或字节串,而且需要规定一种统一的数据格式才能让数据接收端正确解析并理解这些数据的含义.XML 是早期被

  • Python pickle类库介绍(对象序列化和反序列化)

    一.pickle pickle模块用来实现python对象的序列化和反序列化.通常地pickle将python对象序列化为二进制流或文件.   python对象与文件之间的序列化和反序列化: 复制代码 代码如下: pickle.dump() pickle.load() 如果要实现python对象和字符串间的序列化和反序列化,则使用: 复制代码 代码如下: pickle.dumps() pickle.loads() 可以被序列化的类型有: * None,True 和 False; * 整数,浮点数

  • python3.6使用pickle序列化class的方法

    如下所示: from library.connecter.database.mongo import Op_Mongo a = pickle.dumps(Op_Mongo) #序列化 b = pickle.loads(a) #反序列化 以上这篇python3.6使用pickle序列化class的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python序列化基础知识(json/pickle)

    我们把对象(变量)从内存中变成可存储的过程称之为序列化,比如XML,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思. 序列化后,就可以把序列化后的内容写入磁盘,或者通过网络传输到其他服务器上,反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling json(JavaScript Object Notation) 一种轻量级的数据交换格式.它基于ECMAScript的

  • Python使用pickle模块实现序列化功能示例

    本文实例讲述了Python使用pickle模块实现序列化功能.分享给大家供大家参考,具体如下: Python内置的pickle模块能够将Python对象序列成字节流,也可以把字节流反序列成对象. import pickle class Student: def __init__(self, name, age): self.name = name self.age = age def say(self): print("I am", self.name) >>> t

  • python使用cPickle模块序列化实例

    本文实例讲述了python使用cPickle模块序列化的方法,分享给大家供大家参考. 具体方法如下: import cPickle data1 = ['abc',12,23] #几个测试数据 data2 = {1:'aaa',"b":'dad'} data3 = (1,2,4) output_file = open("a.txt",'w') cPickle.dump(data1,output_file) cPickle.dump(data2,output_file)

  • Python 序列化 pickle/cPickle模块使用介绍

    Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游戏允许你在退出的时候保存进度,然后你再次启动的时候回到上次退出的地方.(实际上,很多非游戏程序也会这么干)在这种情况下,一个捕获了当前进度的数据结构需要在你退出的时候保存到硬盘上,接着在你重新启动的时候从硬盘上加载进来. Python标准库提供pickle和cPickle模块.cPickle是用C编码的,在运行效率上比pickle要高,

  • Python序列化与反序列化pickle用法实例

    这篇文章主要介绍了Python序列化与反序列化pickle用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 要将Python对象作为一个文件的形式保存到磁盘,就叫序列化: 当我们需要用到这个这对象,再从磁盘加载这个对象,就叫反序列化 Python自带的pickle可以帮我们实现,pickle这个单词是咸菜的意思,咸菜耐储存,是不是很形象呀? 对象的存储分为两步: 1.将对象在内存中的数据抓取取来,转换成一个有序的文本,这一步就是序列化 2

  • Python 序列化和反序列化库 MarshMallow 的用法实例代码

    序列化(Serialization)与反序列化(Deserialization)是RESTful API 开发中绕不开的一环,开发时,序列化与反序列化的功能实现中通常也会包含数据校验(Validation)相关的业务逻辑. Marshmallow 是一个强大的轮子,很好的实现了 object -> dict , objects -> list, string -> dict和 string -> list. Marshmallow is an ORM/ODM/framework-a

  • 老生常谈Python序列化和反序列化

    通过将对象序列化可以将其存储在变量或者文件中,可以保存当时对象的状态,实现其生命周期的延长.并且需要时可以再次将这个对象读取出来.Python中有几个常用模块可实现这一功能. pickle模块 存储在变量中 dumps(obj)返回存入的字节 dic = {'age': 23, 'job': 'student'} byte_data = pickle.dumps(dic) # out -> b'\x80\x03}q\x00(X\x03\x00\x00\...' print(byte_data)

  • Python序列化与反序列化相关知识总结

    Python序列化与反序列 在程序运行的过程中,所有的变量都是在内存中,比如,定义一个 dict: d = dict(name='Bob', age=20, score=88) 可以随时修改变量,比如把 name 改成 'Bill',但是一旦程序结束,变量所占用的内存就被操作系统全部回收.如果没有把修改后的 'Bill' 存储到磁盘上,下次重新运行程序,变量又被初始化为 'Bob'. 我们把变量从内存中变成可存储或传输的过程称之为序列化,在 Python 中叫 pickling,在其他语言中也被

  • 浅析Python 序列化与反序列化

    序列化是将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态(存在内存中)写入到临时或持久性存储区(硬盘).以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象. 实现对象的序列化和反序列化在python中有两种方式:json 和 pickle. 其中json用于字符串 和 python数据类型间进行转换,pickle用于python特有的类型 和 python的数据类型间进行转换,pickle是python特有的. 1.JSON序列化:json.dump

  • Python序列化模块之pickle与json详解

    目录 序列化模块 序列化和反序列化 使用场景 dumps & loads dump & load JSON序列化模块 使用场景 支持的数据类型 JSON和pickle的区别 序列化函数 json和pickle实际使用过程中的一些问题 pickle和json的区别总结 序列化模块 import pickle 序列化和反序列化 把不能直接存储的数据变得可存储,这个过程叫做序列化.把文件中的数据拿出来,回复称原来的数据类型,这个过程叫做反序列化. 在文件中存储的数据只能是字符串,或者是字节流,不

  • Python @property原理解析和用法实例

    这篇文章主要介绍了Python @property原理解析和用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在我们定义数据库字段类的时候,往往需要对其中的类属性做一些限制,一般用get和set方法来写,那在python中,我们该怎么做能够少写代码,又能优雅的实现想要的限制,减少错误的发生呢,这时候就需要我们的@property闪亮登场啦,巴拉巴拉能量--.. 用代码来举例子更容易理解,比如一个学生成绩表定义成这样 class Stude

  • PHP序列化和反序列化深度剖析实例讲解

    序列化 序列化格式 在PHP中,序列化用于存储或传递 PHP 的值的过程中,同时不丢失其类型和结构. 序列化函数原型如下: string serialize ( mixed $value ) 先看下面的例子: class CC { public $data; private $pass; public function __construct($data, $pass) { $this->data = $data; $this->pass = $pass; } } $number = 34;

  • Python curses内置颜色用法实例

    1.说明 curses提供了内置颜色可以让我们自定义前后背景.在使用彩色模式之前我们需要先使用使用curses.start_corlor()进行初始化操作. 2.注意 0号位置颜色是默认黑白配色,无法修改. 3.实例 import curses import time stdscr = curses.initscr() stdscr.nodelay(False) curses.noecho() # 初始化彩色模式 curses.start_color() # 在1号位置添加前景色是绿色,背景色是

  • python高级内置函数用法实例

    1.enumerate返回针对序列类型的可迭代对象的枚举对象. 2.eval取出字符串中的内容. 将str中有效的表达式返回计算结果. 3.exec运行编译后的字符串. 4.filter过滤器筛选出想要的对象. 实例 list1 = [1,'ok',3,'kkk'] s = enumerate(list1) print(s)#<enumerate object at 0x000002D2CC666DB8>生成一个枚举对象 for i in s: print(i) #(0, 1) # (1, '

随机推荐