gpt4 book ai didi

python - 在 python 中按名称从 pickle 文件中恢复对象

转载 作者:太空宇宙 更新时间:2023-11-04 10:15:01 25 4
gpt4 key购买 nike

使用 Python 2.7。有没有办法从 pickle 文件中只恢复指定的对象?

使用与 previous post: 相同的示例

import pickle

# obj0, obj1, obj2 are created here...

# Saving the objects:
with open('objs.pickle', 'w') as f:
pickle.dump([obj0, obj1, obj2], f)

现在,我只想恢复 obj1

我正在做以下事情:

with open('objs.pickle', 'r') as f:
obj1=pickle.load(f)[1]

但是假设我不知道对象的顺序,只知道它的名称。写这篇文章,我猜名字在 pickle 过程中被删除了?

最佳答案

您可以使用字典为每个对象提供名称,而不是将对象存储在列表中:

import pickle

s = pickle.dumps({'obj0': obj0, 'obj1': obj1, 'obj2': obj2})

obj1 = pickle.loads(s)['obj1']

项目的顺序不再重要,实际上没有顺序,因为正在恢复字典。

我不能 100% 确定这就是您想要的。您是否希望仅恢复感兴趣的对象,即不解析和恢复其他对象?我认为如果不编写您自己的解析器或相当程度的黑客攻击,就无法用 pickle 来完成。

关于python - 在 python 中按名称从 pickle 文件中恢复对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35889048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com