百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Python 使用 pickle 序列化 对象(pyspark 序列化)

cac55 2024-10-27 08:15 12 浏览 0 评论

使用 pickle 序列化 Python 对象

5 分钟阅读

序列化的直观认识

在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict:

d = dict(name='Bob', age=20, score=88)

可以随时修改变量,比如把name改成'Bill',但是一旦程序结束,变量所占用的内存就被操作系统全部回收。如果没有把修改后的'Bill'存储到磁盘上,下次重新运行程序,变量又被初始化为'Bob'

我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。

序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。

反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。

Python提供了pickle模块来实现序列化。

序列化简介

在面向对象的编程中,序列化是将数据结构或对象转换为可以卸载到文件、内存缓存或通过网络连接传输的格式的过程,并且以后可以在相同或不同的环境中重建相同的对象。

序列化是将对象转换为字节流,从字节流重新生成对象的反向过程是反序列化

序列化 Python 对象的过程

序列化 Python 对象

在Python中,序列化和反序列化是通过“Pickle”库实现的。

什么是Pickle以及如何使用它?

Pickle 库是使用 C 编程语言开发的,就像 Python 解释器一样。它可以保存任意复杂的Python数据结构。Pickle 是可扩展的

Pickle 模块可以存储什么数据类型?

pickle 模块存储以下数据类型:

  • Python 维护的所有本机数据类型:布尔值、整数、浮点数、复数、字符串、字节对象、字节数组和 None。
  • 包含任何数据类型序列的列表、元组、字典和集合。
  • 的列表、词典、元组和集合。带有列表/元组/字典任意组合的集合,以及将本机数据类型的任意组合的集合。
  • 函数、类和类的实例。


如何使用 Pickle 库来序列化 Python 对象?

步骤#1 构造Pickle数据。

website = {'title' : 'Techbeamers', 'site_link' : '/','site_type': 'technology blog','owner':'Python Serialization tutorial','established_date':'Sep2015'}

步骤#2 将数据另存为Pickle文件

有一个字典,其中包含有关网站的所有信息。让我们将其另存为泡菜文件:

import pickle
with open ('website.pickle','wb') as f:
    pickle.dump(website,f)
  • 使用“wb”文件模式以二进制模式打开文件以进行写入操作。
  • 使用“with”语句将其括起来,以确保文件在我们完成处理后自动关闭。
  • pickle 模块中的 dump() 方法采用可序列化的 Python 数据结构,在本例中为我们创建的字典,并执行以下操作。使用最新版本的 pickle 协议将其序列化为二进制格式。将其保存到打开的文件中。
  • 最新版本的 pickle 协议需要二进制格式。

步骤#3 从Pickle文件加载数据,

  • 你可以简单的理解为把硬盘的文件解析后,
  • 加载到内存中变成Python可以识别的结构

pickle 加载文件数据到内存中。

import pickle
with open ('website.pickle', 'rb') as f:
    data = pickle.load(f)
    print (data)
Output:
{'site_link': '/', 'title': 'Techbeamers', 'owner': 'Python Serialization tutorial', 'established_date': 'Sep2015', 'site_type': 'technology blog'}
  • 以二进制模式打开了 pickle 文件。
  • 该方法接受流对象作为参数,pickle.load()从流中扫描序列化缓冲区。实例化一个全新的 Python 对象。使用序列化数据重新生成新的 Python 对象,
  • pickle.load() 生成新的数据结构,与pickle.dump()的结构保持一致
import pickle

website = {'title' : 'Techbeamers', 'site_link' : '/','site_type': 'technology blog','owner':'Python Serialization tutorial','established_date':'Sep2015'}

with open ('website.pickle','wb') as f:
    pickle.dump(website,f)

with open ('website.pickle', 'rb') as f:
    data = pickle.load(f)
    print (data)


结语

相关推荐

二年级下册语文课后三张表:词语表、生字表、识字,带注音

完整版电子资料,请关注后看我主页置顶贴获取为方便领取资料,请截图本页内容高清图片,可保存原图打印...

怎样把照片识别成文字?免费图片转Word的方法

有时我们去参加一些培训或活动,现场笔记来不及做都是先用手机拍照,后续再整理的时候重新打肯定特别耗时间,是否能直接将照片识别成文字呢?答案当然是肯定的,除了一些比较常用的聊天工具的截图文字识别外,更好用...

25春 | 二年级语文下册《写字表+识字表》,给孩子的预习带来帮助

25春|二年级语文下册《写字表+识字表》,给孩子的预习带来帮助完整版电子资料,请关注后看我主页置顶贴获取为方便领取资料,请截图本页内容高清图片,可保存原图打印...

二年级上册第五单元练字帖截图可打印,暑假练字必备打印版

部编版小学语文教材更加注重基础的掌握与积累,尤其在小学生认字和写字、阅读、古诗词等方面,提出了更高与更细致的要求。练字帖是以部编版小学语文教材的写字表做了汇总并以教材为范本制作写字表字帖字体、写字格规...

四年级上册第一单元练字帖截图可打印,暑假练字必备打印版

这练字帖是由部编版四年级上册教材整理而来的,字体、写字格规格、字号等与教材完全一致,部编版小学语文教材更加注重基础的掌握与积累。大家都知道家长朋友除了关心孩子的成绩之外,另外一个最关心的问题就是孩子...

部编版小学一年级下册语文第一单元识字第1课课件:春夏秋冬

亲爱的读者,今天为您带来的是部编版小学一年级下册语文第一单元识字第1课课件,本套课件是老师辛苦制作的呢。请大家看一下课件截图吧。大家都知道,现在的学校电教化水平很高了,可是,老师们自己制作一份课件非常...

老师的助手:部编版小学一年级下册语文第一单元识字第1课课件

亲爱的读者,今天为您带来的是部编版小学一年级下册语文第一单元识字第1课课件,本套课件是老师辛苦制作的呢。请大家看一下课件截图吧。大家都知道,现在的学校电教化水平很高了,可是,老师们自己制作一份课件非常...

四年级下册字帖语文识字表二类(电子版可打印)

亲爱的同学们好,这里是小学课堂秘籍今天为大家分享:四(下)语文识字表二类字贴23页。小学四年级是语文学习的重要阶段,识字是这个阶段语文学习的基础任务之一。2025新四下语文识字表二类字帖,是依据...

PDF解锁神器:用PyMuPDF与pdfplumber告别手动提取

前言大家好,今天咱们来聊聊如何用Python中的PyMuPDF和pdfplumber库,轻松提取PDF文件里的文本和元数据。你是否曾经在处理一个复杂的PDF文件时,感到信息难以触及,提取过程让人抓狂?...

四年级上册第3单元看拼音写汉字截图打印,暑假预习必备打印版

部编版小学语文教材更加注重基础的掌握与积累,尤其在小学生认字和写字、阅读、古诗词等方面,提出了更高与更细致的要求。练字帖是以部编版小学语文教材的写字表做了汇总并以教材为范本制作写字表字帖字体、写字格规...

二级上册第3一4单元看拼音写汉字截图可打印,暑假预习打印版

部编版小学语文教材更加注重基础的掌握与积累,尤其在小学生认字和写字、阅读、古诗词等方面,提出了更高与更细致的要求。练字帖是以部编版小学语文教材的写字表做了汇总并以教材为范本制作写字表字帖字体、写字格规...

五年级下册语文睡前默写每日一练小纸条(识字.写字.词语)电子版

亲爱的同学们好,这里是小学课堂秘籍今天为大家分享:五(下)语文睡前默写每日一练小纸条(识字.写字.词语),每天的练习围绕一篇或几篇课文展开,题型丰富。看拼音写词语和根据语境写词语,有助于学生巩固生字词...

微信图片识别文字怎么弄?分享两个小妙招

微信是目前全球使用最广泛的即时通讯软件之一,其提供的图像识别功能使得我们能够轻松地通过拍照或者截图来获取图像中的文字信息。本文将介绍微信图片识别文字的方法以及相关技巧。微信图片识别文字的方法微信图片识...

四年级上册第1一2单元看拼音写汉字截图可打印,暑假预习打印版

部编版小学语文教材更加注重基础的掌握与积累,尤其在小学生认字和写字、阅读、古诗词等方面,提出了更高与更细致的要求。练字帖是以部编版小学语文教材的写字表做了汇总并以教材为范本制作写字表字帖字体、写字格规...

25年新版三年级上册语文暑假练习识字表字帖

完整版电子资料,请关注后看我主页置顶贴获取为方便领取资料,请截图本页内容高清图片,可保存原图打印...

取消回复欢迎 发表评论: