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)

原文地址:https://blog.51cto.com/13560219/2448714

时间: 2024-09-29 22:41:53

Python序列化与反序列化pickle的相关文章

Python序列化与反序列化-json与pickle

Python序列化与反序列化-json与pickle 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.json的序列化方式与反序列化方式 1>.json序列化 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90

python序列化与反序列化(json与pickle)

在python中,序列化可以理解为将python中对象的编码格式转换为json(pickle)格式的字符串,而反序列化可以 理解为将json(pickle)格式的字符串转换为python中对象的编码格式 举一个简单的例子,我们在vmvare环境下编写python程序,然后需要临时走开一下,但是我们又不想把这个vmvare关闭,这个时候我们可以选择挂机,这样我们再回来继续操作时候,就可以直接恢复到走之前的状态,那么我们之前编写的代码及vmvare的状态是保存在哪里了呢,实际上是保存在文件当中来了,

python序列化与反序列化(json、pickle)

1.什么是序列化&反序列化? 序列化:将字典.列表.类的实例对象等内容转换成一个字符串的过程. 反序列化:将一个字符串转换成字典.列表.类的实例对象等内容的过程 PS:Python中常见的数据结构可以统称为容器.序列(如列表和元组).映射(如字典)以及集合(set)是三类主要的容器. 场景一:我们在python中将一个功能给另外一段程序使用,怎么给? 方法一:功能存到文件,然后另一个python程序再从文件里读出来. 场景二:现在反过来怎么把读出来的文件字符串转换成字典? 方法二:eval()函

Python—序列化和反序列化模块(json、pickle和shelve)

什么是序列化 我们把对象(或者变量)从内存中变为可存储或者可传输的过程称为序列化.在python中为pickling,在其他语言中也被称之为serialization,marshalling,flattening等等.即序列化之后就可以将内存中的程序内容写入硬盘或者通过网络传输到其他机器上去.反序列化的过程则相反:将硬盘中的内容变为可以在内存中运行的程序的过程称为反序列化. Json模块 # encoding:utf-8 # 通过序列化和反序列化将内容存储到文件 import json json

Python 序列化Json、Pickle

#!/usr/bin/env python # -*- coding:utf-8 -*- # author: Changhua Gong ''' Json仅支持简单的数据类型,不支持复杂类型的序列化,如函数 ''' import json info = {"name":"daidai", "salary":15000} # 序列化 with open("test.txt", "w") as f: # f.w

python序列化与反序列化——json与pickle

一.定义 序列化是指将对象从内存中取出来写入存储区,如txt文件中,反序列则相反. 二. 应用场景 跨平台数据传输: 保留上一次运行程序时对对象的修改 三. 模块和函数 1. json dumps().dump()(序列化) loads().load() (反序列化) 2. pickle dumps().dump()(序列化) loads().load ()(反序列化) 四.  应用案例 1. pickle 1 import pickle 2 3 info = {"lyrics": &

python 序列化和反序列化

概念 序列化: 将对象的状态信息转换为可以存储或传输的形式的过程.就是把对象转换成字符串的过程 反序列化: 把字符串转换成python可以识别的数据类型对象的过程 应用 #数据存储 #网络传输 模块 json #通用的序列化格式 #只有少部分数据类型能通过json转换(数字,字符串,列表,字典,元组) #写文件的操作时,如果找不到ascii码的格式,就会自动转成bytes,所以要添加ensure_ascii=False的参数 #能多次写,但不能多次读 import json dic = {'k1

接口测试基础三-Python序列化和反序列化

啥是序列化?啥是反序列化?这两个词听起来优点高大上的意思,其实呢不然,很简单的可以理解为: 序列化:将python的数据对象编码转换为json格式的字符串 反序列化:将json格式的字符串解码为python的数据对象 在python中提供了json库,我们将json导入,查看json库下面有哪些方法: >>> import json >>> print (json.__all__) ['dump', 'dumps', 'load', 'loads', 'JSONDeco

python序列化: json & pickle & shelve 模块

一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进行转换Json模块提供了四个功能:dumps.dump.loads.loadpickle模块提供了四个功能:dumps.dump.loads.load json模块:下面通过一些示例来学习:首先我们来看json的dumps和loads方法 s1={"k1":"v1"}