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) cPickle.dump(data3,output_file) output_file.close() input_file = open('a.txt','rb') #data1 = [] data1 = cPickle.load(input_file) data2 = cPickle.load(input_file) data3 = cPickle.load(input_file) print data1 print data2 print data3 outstring = cPickle.dumps(data1) open('out.txt','wb').write(outstring) file_data = open('out.txt','rb').read() real_data = cPickle.loads(file_data) print real_data
本文实例测试环境Python2.7.6
运行结果如下:
['abc', 12L, 23L] {1L: 'aaa', 'b': 'dad'} (1L, 2L, 4L) ['abc', 12L, 23L]
希望本文所述对大家Python程序设计的学习有所帮助。
相关推荐
-
python使用marshal模块序列化实例
本文实例讲述了python使用marshal模块序列化的方法,分享给大家供大家参考.具体方法如下: 先来看看下面这段代码: import marshal data1 = ['abc',12,23,'jb51'] #几个测试数据 data2 = {1:'aaa',"b":'dad'} data3 = (1,2,4) output_file = open("a.txt",'wb')#把这些数据序列化到文件中,注:文件必须以二进制模式打开 marshal.dump(dat
-
Python 序列化 pickle/cPickle模块使用介绍
Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游戏允许你在退出的时候保存进度,然后你再次启动的时候回到上次退出的地方.(实际上,很多非游戏程序也会这么干)在这种情况下,一个捕获了当前进度的数据结构需要在你退出的时候保存到硬盘上,接着在你重新启动的时候从硬盘上加载进来. Python标准库提供pickle和cPickle模块.cPickle是用C编码的,在运行效率上比pickle要高,
-
详解Python中的序列化与反序列化的使用
学习过marshal模块用于序列化和反序列化,但marshal的功能比较薄弱,只支持部分内置数据类型的序列化/反序列化,对于用户自定义的类型就无能为力,同时marshal不支持自引用(递归引用)的对象的序列化.所以直接使用marshal来序列化/反序列化可能不是很方便.还好,python标准库提供了功能更加强大且更加安全的pickle和cPickle模块. cPickle模块是使用C语言实现的,所以在运行效率上比pickle要高.但是cPickle模块中定义的类型不能被继承(其实大多数时候,我们
-
python3序列化与反序列化用法实例
本文实例讲述了python3序列化与反序列化用法.分享给大家供大家参考.具体如下: #coding=utf-8 import pickle aa={} aa["title"]="我是好人" aa["num"]=2 t=pickle.dumps(aa)#序列化这个字典 print(t) f=pickle.loads(t)#反序列化,还原原来的状态 print(f) 运行结果如下: (dp0 S'num' p1 I2 sS'title' p2 S'\
-
Python的Django REST框架中的序列化及请求和返回
序列化Serialization 1. 设置一个新的环境 在我们开始之前, 我们首先使用virtualenv要创建一个新的虚拟环境,以使我们的配置和我们的其他项目配置彻底分开. $mkdir ~/env $virtualenv ~/env/tutorial $source ~/env/tutorial/bin/avtivate 现在我们处在一个虚拟的环境中,开始安装我们的依赖包 $pip install django $pip install djangorestframework $pip i
-
在Python中marshal对象序列化的相关知识
有时候,要把内存中的一个对象持久化保存到磁盘上,或者序列化成二进制流通过网络发送到远程主机上.Python中有很多模块提供了序列化与反序列化的功能,如:marshal, pickle, cPickle等等.今天就讲讲marshal模块. 注意: marshal并不是一个通用的模块,在某些时候它是一个不被推荐使用的模块,因为使用marshal序列化的二进制数据格式还没有文档化,在不同版本的Python中,marshal的实现可能不一样.也就是说,用python2.5序列为一个对象,用python2
-
浅析Python中的序列化存储的方法
在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict: d = dict(name='Bob', age=20, score=88) 可以随时修改变量,比如把name改成'Bill',但是一旦程序结束,变量所占用的内存就被操作系统全部回收.如果没有把修改后的'Bill'存储到磁盘上,下次重新运行程序,变量又被初始化为'Bob'. 我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshal
-
Python pickle类库介绍(对象序列化和反序列化)
一.pickle pickle模块用来实现python对象的序列化和反序列化.通常地pickle将python对象序列化为二进制流或文件. python对象与文件之间的序列化和反序列化: 复制代码 代码如下: pickle.dump() pickle.load() 如果要实现python对象和字符串间的序列化和反序列化,则使用: 复制代码 代码如下: pickle.dumps() pickle.loads() 可以被序列化的类型有: * None,True 和 False; * 整数,浮点数
-
详解Python之数据序列化(json、pickle、shelve)
一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Python也是一样.很多时候我们会有这样的需求: 把内存中的各种数据类型的数据通过网络传送给其它机器或客户端: 把内存中的各种数据类型的数据保存到本地磁盘持久化: 2.数据格式 如果要将一个系统内的数据通过网络传输给其它系统或客户端,我们通常都需要先把这些数据转化为字符串或字节串,而且需要规定一种统一的数据格式才能让数据接收端正确解析并理解这些数据的含义.XML 是早期被
-
Python序列化基础知识(json/pickle)
我们把对象(变量)从内存中变成可存储的过程称之为序列化,比如XML,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思. 序列化后,就可以把序列化后的内容写入磁盘,或者通过网络传输到其他服务器上,反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling json(JavaScript Object Notation) 一种轻量级的数据交换格式.它基于ECMAScript的
随机推荐
- Spring4.0 MVC请求json数据报406错误的解决方法
- java三个环境变量配置简单教程
- javascript操作表格
- PHP 验证身份证是否合法的函数
- PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
- Android Toast的用法总结(五种用法)
- 如何在二叉树中找出和为某一值的所有路径
- RedHat6.5安装MySQL5.7教程详解
- android开机自启动原理与实现案例(附源码)
- 浅谈JavaScript中运算符的优先级
- php安全之直接用$获取值而不$_GET 字符转义
- linux awk高级应用实例
- php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
- Spring Boot使用模板freemarker的示例代码
- js获取指定的cookie的具体实现
- js实现div拖动动画运行轨迹效果代码分享
- Android添加(创建)、删除及判断是否存在桌面快捷方式的方法
- 详解数据结构C语言实现之循环队列
- Android开发环境安装和配置图文教程
- Question:基于C#连续赋值的面试题(解答)