首页 >后端开发 >Python教程 >如何保存和加载自定义 Python 对象以实现数据持久化?

如何保存和加载自定义 Python 对象以实现数据持久化?

Susan Sarandon
Susan Sarandon原创
2024-12-30 00:38:08446浏览

How Can I Save and Load Custom Python Objects for Data Persistence?

保存 Python 对象以实现数据持久化

问题:

我创建了一个自定义 Python对象并希望保存它以供以后使用。如何实现数据持久化?

使用 Pickle 模块保存对象:

Python 标准库中的 Pickle 模块提供了一种保存数据对象的便捷方法坚持。考虑以下带有自定义对象的示例:

import pickle

class Company:
    def __init__(self, name, value):
        self.name = name
        self.value = value

company1 = Company('banana', 40)

要保存此对象,我们可以使用以下代码:

with open('company_data.pkl', 'wb') as outp:
    pickle.dump(company1, outp, pickle.HIGHEST_PROTOCOL)

这将创建一个包含序列化表示的 pickle 文件company1 对象。

阅读已保存对象:

保存后,可以反序列化该对象并稍后检索:

with open('company_data.pkl', 'rb') as inp:
    company1 = pickle.load(inp)

company1 现在包含原始对象,其名称和值属性完好无损。

额外注意事项:

  • cPickle 与 Pickle:cPickle 是 pickle 的 C 版本,提供改进的性能。如果可用,请使用 import cPickle as pickle。
  • 数据流格式(协议):Pickle 支持不同的数据流格式。为了获得最高兼容性,请使用 pickle.HIGHEST_PROTOCOL (-1)。
  • 保存多个对象:Pickle 可以在单个文件中存储多个对象。使用列表或字典等容器对它们进行分组。

以上是如何保存和加载自定义 Python 对象以实现数据持久化?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn