Python:pickle 模块详解

这篇具有很好参考价值的文章主要介绍了Python:pickle 模块详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pickle 模块是 Python 中用于序列化和反序列化对象的标准模块。它可以将对象转换为字节流,以便将其保存到文件或通过网络传输,然后再将字节流还原为原始对象。以下是 pickle 模块的常用函数、示例以及一些注意事项:

pickle.dump() 函数:

用于将对象序列化并将结果写入文件。

import pickle

data = {'name': 'John', 'age': 30, 'city': 'New York'}

with open('data.pkl', 'wb') as file:
    pickle.dump(data, file)

pickle.load() 函数:

用于从文件中读取序列化的对象并反序列化。

import pickle

with open('data.pkl', 'rb') as file:
    loaded_data = pickle.load(file)

print(loaded_data)

与 json 模块的区别:

  • pickle 可以序列化任何可序列化的 Python 对象,包括自定义类的实例。
  • pickle 生成的序列化数据是二进制的,不可读,而 json 生成的是可读的文本。
  • pickle 是 Python 特有的,不能在不同编程语言之间进行数据交换。

示例说明:

import pickle

# 示例对象
person = {'name': 'Alice', 'age': 25, 'city': 'Wonderland'}

# 将对象序列化到文件
with open('person.pkl', 'wb') as file:
    pickle.dump(person, file)

# 从文件中加载并反序列化对象
with open('person.pkl', 'rb') as file:
    loaded_person = pickle.load(file)

print(loaded_person)

注意事项:

  • 尽管 pickle 很方便,但在处理不受信任的数据时要小心使用,因为它可以执行任意代码。
  • 如果需要在不同的编程语言之间共享数据,考虑使用更通用的格式,如 JSON。

pickle.dumps() 和 pickle.loads()

pickle.dumps() 和 pickle.loads() 是 pickle 模块中用于序列化和反序列化对象的函数,它们与 pickle.dump() 和 pickle.load() 的区别在于前者将对象序列化为字节对象,而后者用于从字节对象中反序列化对象

pickle.dumps() 函数:

用于将对象序列化为字节对象。

import pickle

data = {'name': 'John', 'age': 30, 'city': 'New York'}

serialized_data = pickle.dumps(data)

pickle.loads() 函数:

用于从字节对象中反序列化对象。

import pickle

serialized_data = b'\x80\x04\x95\x1c\x00\x00...'

loaded_data = pickle.loads(serialized_data)

示例说明:

import pickle

# 示例对象
person = {'name': 'Alice', 'age': 25, 'city': 'Wonderland'}

# 将对象序列化为字节对象
serialized_person = pickle.dumps(person)

# 从字节对象中加载并反序列化对象
loaded_person = pickle.loads(serialized_person)

print(loaded_person)

使用 dumps() 和 loads() 的好处是可以在程序中直接操作字节对象而无需将其写入文件,适用于需要在程序内部传递序列化对象的情况。文章来源地址https://www.toymoban.com/news/detail-789920.html

到了这里,关于Python:pickle 模块详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python数据库模块(sqlite3,SQLite3)

    创建数据库:在控制台sqlite3 name sqlite3.connect(database [,timeout ,other optional arguments]) 打开数据库;如果指数据库存在则返回一个连接对象,如果不存在则会创建一个数据库; connection.cursor() 创建一个cursor; cursor.execute(sql) 执行一个sql语句,该语句可以被参数化; connection.execut

    2024年03月19日
    浏览(61)
  • 在Python中利用内置SQLite3模块进行数据库操作的完整指南

      在Python中,使用SQLite非常方便,Python内置了 SQLite3 模块,无需额外安装。SQLite 是一个轻量级的嵌入式数据库,适用于小型项目和单用户应用。以下是一个简单的示例,演示如何在 Python 中使用 SQLite,并提供了常见的查询、增加、修改和删除功能。 首先,确保你的 Python 安装

    2024年02月03日
    浏览(63)
  • python——数据库操作PyMysql使用详解

    劝君惜取少年时 在编写小脚本时,PyMysql是快速连接并操作数据库的一个不错选择。 连接数据库 使用connect函数创建连接对象,此连接对象提供关闭数据库、事务回滚等操作 一般传参为:host, user, password, port(默认为3306), database(想要连接的数据库名) 连接对象的常见方法 :

    2024年02月02日
    浏览(61)
  • 一文详解python中的数据库操作

    最近做毕设,需要添加个数据库,记录一下。 重点介绍数据库API接口中的连接对象和游标对象 1. 连接对象 数据库连接对象主要提供获取数据库游标对象和提交/回滚事务的方法,以及关闭数据库连接。 使用connect函数获取对象,该函数有多个参数: host 主机名 database/db 数据库

    2024年02月07日
    浏览(42)
  • 〖Python网络爬虫实战㉒〗- 数据存储之数据库详解

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月06日
    浏览(52)
  • 一个月学通Python(十四):Python操作Mysql数据库详解(必备)

    结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础》

    2024年02月16日
    浏览(55)
  • Python Django 之连接 Mysql 数据库详解

    博客:https://blog.csdn.net/qq_34745941/article/details/122549376 若已安装,请忽略。 主要使用的文件如图 若 pip 安装失败,可进入 Python 官方库中下载 whl 文件,操作可参考: 博客:https://blog.csdn.net/qq_34745941/article/details/106341898 在 settings.py 中,配置 Mysql 的连接串 扩展: Django 也支持其

    2024年02月04日
    浏览(55)
  • python学习笔记(三)—数据库篇

    数据库编程是指在应用程序中使用数据库管理系统(DBMS)进行数据存储、检索和处理的过程。数据库提供了一种结构化的方式来组织和存储数据,使得数据的管理更加高效和可靠。 关系数据库是一种基于关系模型的数据库系统,使用表(表格)来存储和组织数据。每个表由

    2024年02月11日
    浏览(37)
  • 4 种 Python 连接 MySQL 数据库的方法,速来学习!!

    用 Python 连接到 MySQL 数据库的方法不是很系统 ,实际中有几种不同的连接方法,而且不是所有的方法都能与不同的操作系统很好地配合。除此之外,启用SSL也是一个挑战。 本文 涵盖了四种方法 ,你可以用它们来连接你的Python应用程序和MySQL。这些例子将使用PlanetScale,一个

    2024年02月05日
    浏览(54)
  • Python 框架学习 Django篇 (八) 代码优化、数据库冗余处理

    我们开发软件系统的时候,需要不断的反思我们代码里面是否有可以优化的地方。而优化的重点之一,就是把冗余的代码优化为可以复用的库。我们在前面编写了一些功能,但是其中存在很多冗余的方法 打开这3个文件我们可以看到他们的入口函数dispatcher  实际的代码相似度

    2024年02月06日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包