Python的对象序列化模块。将此标记与Python标记一起用于与使用Pickle存储或加载对象相关的问题。
我有一个关于 scikit 模型和(复古)兼容性的问题。 我有一个从 scikit-learn 0.21.2 在 Python 3.5 中创建的模型(使用 joblib 保存),然后我使用 shap versi 包进行分析...
收集泡菜5 使用缓存的pickle5-0.0.11.tar.gz (132 kB) 准备元数据(setup.py)...完成 为收集的包构建轮子:pickle5 pickle5 的构建轮子(setup.py)......
_pickle.PicklingError:无法腌制<class '__main___.{CONST} '>:属性查找失败dir_namesmain_on __main__失败
首先 dir_names 在酸洗时效果很好 dir_names = collections.namedtuple('dir_names', ['标记', '类别']) pickle.dump(dir_names, open('tmp.bin', 'wb')) 我想让 dir_name 成为 const DIR_NAME...
我无法弄清楚为什么保存的 10000 X 10000 X 7 大小的 Numpy 数组(dtype=np.float16)为 1.4GB,而等效的 pickled Python 列表大约为 500mb。我希望 Python
`我输入了以下代码来生成一个pickle文件,该文件是在运行代码后自行创建的,但在对文件进行depickle之后,所有数据都是“无”,而不是获取...的名称
无法解封文件 _pickle.UnpicklingError:遇到加载持久 id 指令,但未指定 permanent_load 函数
我正在处理生物信息学程序的数据(https://github.com/twopin/CAMP/tree/master/CAMP_pytorch)。 我正打算解开软件作者用来解决问题的数据/代码......
为什么Python的defaultdict在pickle中表现得很奇怪?
我正在使用 PySpark,它使用 Python 的 pickle 来序列化对象。我的用例有一个嵌套的 defaultdict 数据结构,例如: 从集合导入defaultdict 嵌套字典 = defaultdict(lambda:
无法pickle本地对象'get_tokenizer。<locals>.<lambda>'
-------------------------------------------------------- ---------------------------- AttributeError Traceback(最近一次调用最后一次) d: bie\Coding\Tugas Akhir brow\VisualGPT-main\
我想在 Jupyter 笔记本中并行执行长时间运行的函数,而不阻塞笔记本本身。不过,我也想随时将完全不相关的作业添加到队列中,...
考虑以下类,它继承自 datetime.time: 类 TimeWithAddSub(时间): _date_base = 日期(2000, 1, 1) def __new__(cls, 小时=0, 分钟=0, 秒=0, 微秒=0, tzinf...
UnpicklingError:遇到加载持久id指令,但未指定perpetitive_load函数
我试图运行一个名为 api.py 的 python 文件。在此文件中,我加载使用 PyTorch 构建和训练的深度学习模型的 pickle 文件。 api.py 在 api.py 中,下面给出的函数...
我正在尝试使用Durable Functions按功能实现数据分析。 当通过函数实现时,我需要传输数据帧等,所以我尝试通过使其pickle来交换数据。
pickle 无法加载数据:TypeError: _unpickle_timestamp() 恰好需要 3 个位置参数(给定 4 个)
我有一个数据集,存储在 pandas 数据框中,我在一个环境中构建并腌制了该数据集。 pickle 文件在该环境(环境 1)中加载良好。但是,当我尝试将其加载到
即使我正在遵循示例问题,我仍然收到“ValueError:值的长度(1)与索引的长度(11)不匹配”
我正在尝试将 pymoo 优化算法与回归模型结合起来。我在 github 上发现了这个很棒的示例,并尝试遵循从 In[16] 开始的步骤。 示例 p...
我有一个大表,我想将其转换为Python字典,但我不想将所有数据加载到内存中。 是否可以在不构建对象的情况下主动写入pickle转储
我正在尝试将 pandas 数据框腌制到本地目录,以便我可以在另一个 jupyter 笔记本中处理它。写入一开始似乎成功,但当尝试在新的 jupyter 中读取它时
在一个小型数据采集项目中,我们使用Python的pickle来存储记录的数据,即对于每个“事件”,我们将其添加到输出文件f中 pkl.dump(事件, f, pkl.HIGHEST_PROTOCOL) ...
我正在学习如何使用pickle。我创建了一个命名元组对象,将其附加到一个列表中,并尝试腌制该列表。但是,我收到以下错误: pickle.PicklingError:无法腌制 我正在学习如何使用pickle。我创建了一个命名元组对象,将其附加到一个列表中,并尝试腌制该列表。但是,我收到以下错误: pickle.PicklingError: Can't pickle <class '__main__.P'>: it's not found as __main__.P 我发现如果我运行代码而不将其包装在函数中,它会完美运行。包装在函数内时是否需要额外的步骤来腌制对象? 这是我的代码: from collections import namedtuple import pickle def pickle_test(): P = namedtuple("P", "one two three four") my_list = [] abe = P("abraham", "lincoln", "vampire", "hunter") my_list.append(abe) with open('abe.pickle', 'wb') as f: pickle.dump(abe, f) pickle_test() 创建函数的命名元组outside: from collections import namedtuple import pickle P = namedtuple("P", "one two three four") def pickle_test(): my_list = [] abe = P("abraham", "lincoln", "vampire", "hunter") my_list.append(abe) with open('abe.pickle', 'wb') as f: pickle.dump(abe, f) pickle_test() 现在pickle可以找到它;它现在是一个全局模块。当 unpickle 时,pickle 模块所要做的就是再次定位 __main__.P。在您的版本中, P 是 pickle_test() 函数的 local,并且不可内省或不可导入。 请注意,pickle仅存储模块和类名称,取自类的__name__属性。确保 namedtuple() 调用的第一个参数与您要分配给的全局变量匹配; P.__name__一定是"P"! 重要的是要记住,namedtuple()是一个类工厂;你给它参数,它返回一个类对象供你创建实例。 pickle仅存储实例中包含的data,加上对原始类的字符串引用以再次重建实例。 我在另一个线程中找到了这个答案。 为了让 pickling 正常工作,分配给namedtuple的变量必须与namedtuple本身具有相同的名称 group_t = namedtuple('group_t', 'field1, field2') # this will work mismatched_group_t = namedtuple('group_t', 'field1, field2') # this will throw the error 将我的问题添加为主要答案的评论后,我找到了一种方法来解决动态创建的 namedtuple 可腌制的问题。在我的情况下这是必需的,因为我仅在运行时(在数据库查询之后)计算出其字段。 我所做的就是 monkey patch namedtuple,有效地将其移动到 __main__ 模块: def _CreateNamedOnMain(*args): import __main__ namedtupleClass = collections.namedtuple(*args) setattr(__main__, namedtupleClass.__name__, namedtupleClass) namedtupleClass.__module__ = "__main__" return namedtupleClass 请注意,如果您不小心,namedtuple名称(由args提供)可能会覆盖__main__中的另一个成员。 或者,您可以使用 cloudpickle 或 dill 进行序列化: from collections import namedtuple import cloudpickle import dill def dill_test(dynamic_names): P = namedtuple('P', dynamic_names) my_list = [] abe = P("abraham", "lincoln", "vampire", "hunter") my_list.append(abe) with open('deleteme.cloudpickle', 'wb') as f: cloudpickle.dump(abe, f) with open('deleteme.dill', 'wb') as f: dill.dump(abe, f) dill_test("one two three four") 这里的问题是子进程无法导入对象的类 - 在本例中为类 P -,在多模型项目的情况下,类 P 应该可以在使用子进程的任何地方导入 一个快速的解决方法是通过影响 globals() 来使其可导入 globals()["P"] = P
为什么我在读取空文件时会收到“Pickle - EOFError: Ran out of input”?
我在尝试使用 Unpickler.load() 时遇到一个有趣的错误,这里是源代码: 打开(目标,'a').close() 分数={}; 以 open(target, "rb") 作为文件: unpickler = pickle.Unpi...