什么叫做序列化?
将内存中的对象转换为线性结构的字符串(有时也称字节流),以便存储或者传输.这种对象转换为字符串的行为通常叫做序列化.内存中的任意数据结构都可以映射为一个字符串.
序列化
函数签名
#pickle.dump(obj, file[, protocol])
首先尝试将table对象序列化写入文件dbase中,写入方式是字节形式:
table = {'a' : [1, 2, 3], 'b' : ['spam', 'egg'], 'c' : {'name' : 'Bob'}}
with open('dbase', 'wb') as ff:
pickle.dump(table, ff)
如果我们打开这个dbase文件,可以看到如下一些看起来没意义的字符串,其实是python用内部约定的方式对table对象转换为了这种字符串.这里请注意不同版本的python序列化后的字符串可能有所不同,因此序列化适用于保存不是特别重要的数据.否则升级python版本后,反序列化会还原对象时会出现不一致的问题.
(dp0
S'a'
p1
(lp2
I1
aI2
aI3
asS'c'
p3
(dp4
S'name'
p5
S'Bob'
p6
ssS'b'
p7
(lp8
S'spam'
p9
aS'egg'
p10
as.
也可以序列化后不用写入文件,直接用pickle.dump以字符串返回:
string = pickle.dumps(table)
反序列化
函数签名:
pickle.load(file)
从dbase文件读出反序列化还原对象:
with open('dbase', 'rb') as fobj:
table_ = pickle.load(fobj)
print table_
输出:
{'a': [1, 2, 3], 'c': {'name': 'Bob'}, 'b': ['spam', 'egg']}
从输出结果不难看出,与原来的table字典内容相同.
同样我们可以直接读入字符串反序列化:
obj = pickle.loads(string)
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
### Python序列化pickle模块使用详解 #### 一、概述 `pickle`模块是Python中用于序列化和反序列化对象的标准库之一。序列化是指将一个Python对象转换为字节流,以便于在网络上传输或存储到磁盘上;而反序列化则是将...
Python序列化的概念很简单。内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人。你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁。很多游戏允许你在退出的时候保存进度,然后你再次启动...
Python提供了多种序列化库,如pickle、json、yaml、xml等。 异常处理是Python编程中用来捕获并处理程序运行时出现错误的机制。通过使用try/except语句,我们可以编写更加健壮的代码,当发生异常时,程序不会立即...
pickle模块是Python中进行数据序列化和反序列化的有力工具。通过本文的介绍和代码示例,你应该能够理解pickle模块的基本概念和如何在Python中使用pickle模块进行数据的序列化和反序列化。这些工具和技术为数据持久化...
这篇文章主要介绍了Python序列化与反序列化pickle用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 要将Python对象作为一个文件的形式保存到磁盘,就叫...
如下所示: from library.connecter.database.mongo import Op_Mongo ... 您可能感兴趣的文章:Python使用pickle模块实现序列化功能示例Python使用Pickle库实现读写序列操作示例Python序列化基础知识(json/pi
pickle模块只能在python中使用,python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化, pickle序列化后的数据,可读性差,人一般无法识别。 接下来我们看下Python使用pickle模块存储数据...
Python库pickle-mixin-1.0.2是一个用于序列化和反序列化的工具,它扩展了Python内置的pickle模块。pickle模块是Python中用于将对象的状态转化为可存储或可传输格式,以及从这种格式恢复对象的原状的工具。这个库的...
Python-srsly是一个针对Python开发的现代高性能序列化库,其设计目的是为了提供高效的数据序列化和反序列化功能,特别是在处理JSON、MessagePack和BSON等格式时表现优秀。这个库是为了解决标准库如json和pickle在...
Python的pickle库是一个强大的工具,用于对象的序列化和反序列化。序列化是将Python对象转换为字节流的过程,而反序列化则是将字节流恢复为原来的Python对象。这个过程允许我们将复杂的对象结构保存到文件或通过网络...
Python中的Pickle库是一个用于序列化和反序列化Python对象结构的标准库模块。序列化是指将对象的状态信息转换为可以存储或传输的形式的过程,在Python中通常是指将对象转换为一个字节流。反序列化则是将这个字节流...
pickle模块用来实现python对象的序列化和反序列化。通常地pickle将python对象序列化为二进制流或文件。 python对象与文件之间的序列化和反序列化: 复制代码 代码如下: pickle.dump() pickle.load() 如果要实现...
3. **与pickle相比**: Python的pickle用于Python对象的序列化,但不适用于跨语言数据交换,且安全性较低。 ### 五、protobuf在实际项目中的应用 1. **数据存储**: 存储结构化数据到数据库或文件,减少存储空间。 2...
在"Python之序列化共8页.pdf.zip"这个压缩包中,很显然,它包含了关于Python序列化的详细内容,可能涵盖了上述提到的各个模块的使用方法、优缺点以及示例代码。"赚钱项目"这个文件名可能暗示了该文档中还包含了如何...
Pickle是Python的内置序列化库,它可以将任意复杂的Python对象序列化为二进制流,也可以将二进制流反序列化为原来的Python对象。Pickle序列化的数据格式是Python特有的,不能跨语言使用。 - 序列化:`pickle.dumps...
- **介绍**:Pickle模块是Python内置的一种序列化和反序列化的库,它可以将Python对象转化为字节流(序列化),然后将这个字节流还原为原来的Python对象(反序列化)。Pickle文件就是存储了这些序列化后的对象的...