序列化:

把不能够直接存储的数据变成字节流(bytes)保存在文件,

进行持久化存储

反序列化:

任何数据都可以转成字节流(bytes)进行存储:

1. dumps

把任意对象序列化

 li = [1, 2, 4]
res = pickle.dumps(li) # 返回bytes
print(res, type(res))

2. loads

把字节流转换为原本的数据

 li1 = pickle.loads(res)

 # 转换回的数据类型为list
print(li1, type(li1))

3. dump(obj, f)

将数据写入文件

 with open('1.txt', 'wb') as f:
li = [1, 2, 4, 5] # 将li转换成bytes, 使用f句柄写入文件, 没有返回值
pickle.dump(li, f)

4. load(f)

读取写入文件中的字节流数据, 并将其转换成原本的数据

 with open('1.txt', 'rb') as f:
res = pickle.load(f) # 读取f中写入的数据对象, 将bytes转换成原本的数据类型
print(res, type(res))

序列化迭代器

 iter1 = iter(range(5))
res = pickle.dumps(iter1) iter2 = pickle.loads(res)
print(iter2, type(iter2))

多数据对象使用pickle写入文件

 li = [1, 2, 4, 5]
tup = (1, 2, 4, 5)
dic = {1:2, 2:3, 4:3}
s = 'abc'
setvar = {1, 2, 4} with open('2.txt', 'wb') as f:
pickle.dump(li, f)
pickle.dump(tup, f)
pickle.dump(setvar, f)
pickle.dump(dic, f)
pickle.dump(s, f) with open('2.txt', 'rb') as f:
# f也是一个迭代器,
# load相当于next, 不断调用f
# 返回反序列化后的数据
for i in range(5):
res = pickle.load(f)
print(res, type(res))

序列化模块_pickle的更多相关文章

  1. 常用模块---sys&logging&序列化模块(json&pickle)

    sys 模块 sys.argv 命令行参数List,第一个元素是程序本身路径,通常用来避免io 阻塞 print('欢迎进入') info=sys.argv ': print('login succe ...

  2. python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...

  3. sys模块和序列化模块

    import sysprint(sys.version) #查看当前pycharm版本print(sys.path )#返回模块的搜索路径print(sys.platform )#返回操作系统的版本p ...

  4. day 20 - 1 序列化模块,模块的导入

    序列化模块 首先我们来看一个序列:'sdfs45sfsgerg4454287789sfsf&*0' 序列 —— 就是字符串序列化 —— 从数据类型 --> 字符串的过程反序列化 —— 从 ...

  5. python之序列化模块、双下方法(dict call new del len eq hash)和单例模式

    摘要:__new__ __del__ __call__ __len__ __eq__ __hash__ import json 序列化模块 import pickle 序列化模块 补充: 现在我们都应 ...

  6. 4-20模块 序列化模块 hashlib模块

    1,模块,py文件就是模块,py之所以好用就是模块多. 2,模块的分类: 1,内置模块,python 安装时自带的模块 2,扩展模块,别人写好的,需要安装之后,可以直接使用.itchat微信模块, b ...

  7. Python内置模块之序列化模块

    序列化模块 json dumps loads dump load pickle dumps loads dump load shelve json 1: dumps/loads import json ...

  8. 序列化模块— json模块,pickle模块,shelve模块

    json模块 pickle模块 shelve模块 序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. # 序列化模块 # 数据类型转化成字符串的过程就是序列化 # 为了方便存储和网 ...

  9. python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )

    1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...

随机推荐

  1. SQL注入之Sqli-labs系列第三十八关、第三十九关,第四十关(堆叠注入)

    0x1 堆叠注入讲解 (1)前言 国内有的称为堆查询注入,也有称之为堆叠注入.个人认为称之为堆叠注入更为准确.堆叠注入为攻击者提供了很多的攻击手段,通过添加一个新 的查询或者终止查询,可以达到修改数据 ...

  2. django学习:一些疑惑

    昨天学习了django的第二天,有一些收获. django的语法很严谨,看上去明明对齐的,但是他却提示说缩进不一致.后来我把前面的空全部删除,全部采用空格,这样就通过了,看样子还是要编程有一个好习惯, ...

  3. MS Sql Server 查询数据库中所有表数据量

    方法一: SELECT a.name,b.rows FROM sysobjects a INNER JOIN sysindexes b ON a.id=b.id ,) AND a.Type='u' O ...

  4. Django连接oracle数据库的那些问题

    环境: windows 7 64位 python 3.6.5 32位 oracle客户端11.2 32位 django1.11.20 (django2.x版本不支持oracle客户端11g了) cx_ ...

  5. webpack使用中遇到的问题

    http://ife.baidu.com/note/detail/id/534 https://blog.csdn.net/hreticent/article/details/80489851

  6. 微信小程序测试策略

    一.测试前准备(环境搭建) 1.前端页面 微信Web开发者工具安装.授权测试用的微信号可预览和调试小程序... 可参考此文: 微信Web开发者工具-下载.安装和使用图解 2.管理后台 配置内网测试服务 ...

  7. ajango--orm操作

    一 必知必会13条: 返回对象列表的: 1.all() :查所有 2.filter() :查一行 3.exclude():排除(里面可以写条件,意思除了这个条件的所有) 4.order_by():默认 ...

  8. 实验十 ZStack 网状网络实验

    实验十 ZStack 网状网络实验[实验目的]1. 了解 ZigBee 网状网络结构2. 掌握构建网状网络的方法[实验设备]1. 装有 IAR 开发工具的 PC 机一台2. 实验箱一台3. CCDeb ...

  9. java数据类型运算符类型转换

    Java基本数据类型 基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型.它们是我们编程中使用最频繁的类型,因此面试题中也总少不了它们的身影,在这篇文章中我们将从面试中常考的几个方面来回顾一下 ...

  10. JavaScript中函数引用调用和函数直接调用的区别

    首先看下面的代码: var x = 1 var f1 = function( f ) { var x = 2 ; f( ' console.log( x ) ' ) } var f2 =  funct ...