avatar

RWO.cc

读一次写一次

  • 首页
  • 搭建手册
  • 笔记
  • 短视频
  • 关于
  • 🌈200粉丝🌈
Home 什么是 Python 的 pickling 和 unpickling?
文章

什么是 Python 的 pickling 和 unpickling?

Posted 2024-09-15 Updated 2024-09- 12
By RWO.
4~5 min read

什么是 Pickling 和 Unpickling

Pickling 是指将 Python 对象转换为字节流的过程,这样它们可以保存到文件中或通过网络传输。Unpickling 则是将字节流转换回 Python 对象的过程。

Pickling 的基本使用

我们可以使用 pickle 模块来进行序列化和反序列化。

import pickle

# 要序列化的对象
data = {"name": "Alice", "age": 30, "hobbies": ["reading", "cycling", "hiking"]}

# 将对象序列化并保存到文件
with open('data.pickle', 'wb') as file:
    pickle.dump(data, file)

在这个示例中,我们将一个字典对象 data 序列化并保存到文件 data.pickle 中。'wb' 表示以二进制写模式打开文件。

Unpickling 的基本使用

同样,我们可以使用 pickle 模块来反序列化对象。

import pickle

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

print(loaded_data)

输出:

{'name': 'Alice', 'age': 30, 'hobbies': ['reading', 'cycling', 'hiking']}

在这个示例中,我们从文件 data.pickle 中加载并反序列化对象 loaded_data。'rb' 表示以二进制读模式打开文件。

Pickling 和 Unpickling 的高级用法

我们还可以使用 pickle 模块的其他方法,如 pickle.dumps 和 pickle.loads,它们可以直接处理字节流,而不是文件。

import pickle

# 使用 dumps 和 loads
data = {"name": "Alice", "age": 30, "hobbies": ["reading", "cycling", "hiking"]}
pickled_data = pickle.dumps(data)
loaded_data = pickle.loads(pickled_data)
print(loaded_data)

输出:

{'name': 'Alice', 'age': 30, 'hobbies': ['reading', 'cycling', 'hiking']}

通过 dumps 方法,我们可以将对象序列化为字节流,而 loads 方法则可以将字节流反序列化为对象。

使用注意事项

Pickling 和 Unpickling 有一些需要注意的地方:

  • 安全性:从不信任的来源反序列化数据是不安全的,因为 pickle 模块可以执行任意代码。
  • 兼容性:Pickle 格式是特定于 Python 版本的,不同版本之间的序列化数据可能无法互相兼容。

总结

总结一下,pickling 适用于需要保存和传输 Python 对象的场景,而 unpickling 则用于将这些数据还原。灵活运用这两个过程,可以让我们的数据处理更加高效。

短视频
每日一点 短视频 Python
License:  CC BY 4.0
Share

Further Reading

Nov 3, 2024

什么是 python 的闭包

在 Python 中,闭包(Closure)是一种函数对象,它不仅包含了函数的代码,还包含了函数创建时的环境变量。这意味着闭包可以“记住”其外部作用域中的变量,即使在外部作用域已经结束后,闭包仍然可以访问这些变量。 函数可以访问他被创建时所处的上下文环境,这被称为闭包。 闭包的基本特征 嵌套函数:闭

Nov 2, 2024

使用argparse模块解析命令行参数

在 Python 中,argparse 模块用于解析命令行参数,使得脚本可以更灵活地接受用户输入。以下是如何使用 argparse 模块解析命令行参数的详细介绍和示例。 基本用法 示例:简单的命令行参数解析 首先,创建一个简单的脚本来解析命令行参数。我们将创建一个脚本,该脚本接受两个整数并打印它们的

Nov 1, 2024

Python中的二维码生成与解析(花里胡哨)

如何使用 qrcode 库生成各种有趣的二维码,包括彩色二维码、带 Logo 的二维码和动态 GIF 二维码。下面,我们将逐步介绍这些功能。 Qrcode 库简介 qrcode 库是一个强大的 Python 工具,用于生成二维码。除了基本的二维码,它还支持自定义功能,如颜色变化、样式设计和动画效果。

OLDER

Python 中 append、insert 和 extend 有什么区别?

NEWER

Python 中 read、readline、readlines 有哪些区别?

Recently Updated

  • 什么是 python 的闭包
  • 使用argparse模块解析命令行参数
  • Python中的二维码生成与解析(花里胡哨)
  • Python中的二维码生成与解析(基础使用)
  • 使用platform模块获取系统信息

Trending Tags

学习 Git 工具 SQL docker-compose 每日一点 快捷键 Flink fastapi Windows

Contents

©2025 RWO.cc. Some rights reserved.

Using the Halo theme Chirpy