python使用marshal模块序列化实例


Posted in Python onSeptember 25, 2014

本文实例讲述了python使用marshal模块序列化的方法,分享给大家供大家参考。具体方法如下:

先来看看下面这段代码:

import marshal
data1 = ['abc',12,23,'3water']  #几个测试数据
data2 = {1:'aaa',"b":'dad'}
data3 = (1,2,4)

output_file = open("a.txt",'wb')#把这些数据序列化到文件中,注:文件必须以二进制模式打开
marshal.dump(data1,output_file)
marshal.dump(data2,output_file)
marshal.dump(data3,output_file)
output_file.close()


input_file = open('a.txt','rb')#从文件中读取序列化的数据
#data1 = []
data1 = marshal.load(input_file)
data2 = marshal.load(input_file)
data3 = marshal.load(input_file)
print data1#给同志们打印出结果看看
print data2
print data3


outstring = marshal.dumps(data1)#marshal.dumps()返回是一个字节串,该字节串用于写入文件
open('out.txt','wb').write(outstring)

file_data = open('out.txt','rb').read()
real_data = marshal.loads(file_data)
print real_data

结果:

['abc', 12, 23, '3water']
{1: 'aaa', 'b': 'dad'}
(1, 2, 4)
['abc', 12, 23, '3water']

marshel模块的几个函数官方描述如下:

The module defines these functions:
marshal.dump(value, file[, version])
Write the value on the open file. The value must be a supported type. The file must be an open file object such as sys.stdout or returned by open() or os.popen(). It must be opened in binary mode ('wb' or 'w+b').
If the value has (or contains an object that has) an unsupported type, a ValueError exception is raised — but garbage data will also be written to the file. The object will not be properly read back by load().
New in version 2.4: The version argument indicates the data format that dump should use (see below).
marshal.load(file)
Read one value from the open file and return it. If no valid value is read (e.g. because the data has a different Python version's incompatible marshal format), raise EOFError, ValueError or TypeError. The file must be an open file object opened in binary mode ('rb' or 'r+b').
Warning
If an object containing an unsupported type was marshalled with dump(), load() will substitute None for the unmarshallable type.
marshal.dumps(value[, version])
Return the string that would be written to a file by dump(value, file). The value must be a supported type. Raise a ValueError exception if value has (or contains an object that has) an unsupported type.
New in version 2.4: The version argument indicates the data format that dumps should use (see below).
marshal.loads(string)
Convert the string to a value. If no valid value is found, raise EOFError, ValueError or TypeError. Extra characters in the string are ignored.
In addition, the following constants are defined:
marshal.version
Indicates the format that the module uses.

marshal.version的用处marshal不保证不同的python版本之间的兼容性,所以保留个版本信息的函数.

希望本文所述对大家Python程序设计的学习有所帮助。

Python 相关文章推荐
Python实现的一个找零钱的小程序代码分享
Aug 25 Python
python数据结构之图深度优先和广度优先实例详解
Jul 08 Python
python如何实现excel数据添加到mongodb
Jul 30 Python
Python中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
离线安装Pyecharts的步骤以及依赖包流程
Apr 23 Python
python实现稀疏矩阵示例代码
Jun 09 Python
《Python学习手册》学习总结
Jan 17 Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 Python
django 自定义过滤器的实现
Feb 26 Python
python+numpy实现的基本矩阵操作示例
Jul 19 Python
python的json包位置及用法总结
Jun 21 Python
Python基于yaml文件配置logging日志过程解析
Jun 23 Python
python中类的一些方法分析
Sep 25 #Python
python实现获取序列中最小的几个元素
Sep 25 #Python
python中bisect模块用法实例
Sep 25 #Python
python实现给字典添加条目的方法
Sep 25 #Python
python实现忽略大小写对字符串列表排序的方法
Sep 25 #Python
python对字典进行排序实例
Sep 25 #Python
python实现在无须过多援引的情况下创建字典的方法
Sep 25 #Python
You might like
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
Javascript计算时间差的函数分享
2011/07/04 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
jquery判断元素的子元素是否存在的示例代码
2014/02/04 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
python求crc32值的方法
2014/10/05 Python
Python类定义和类继承详解
2015/05/08 Python
Selenium(Python web测试工具)基本用法详解
2018/08/10 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
某个公司的Java笔面试题
2016/03/11 面试题
办公室副主任岗位职责
2013/11/25 职场文书
成品仓管员岗位职责
2013/12/11 职场文书
公司合作协议书范本
2014/04/18 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
行政助理岗位职责
2015/02/10 职场文书
JavaCV实现照片马赛克效果
2022/01/22 Java/Android
Pandas数据结构之Series的使用
2022/03/31 Python