问题标签 [pickle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3313 浏览

python - 如何腌制 CookieJar?

我有一个要腌制的带有 CookieJar 的对象。

然而,大家可能都知道,pickle 会阻塞包含锁定对象的对象。由于某些可怕的原因,CookieJar 有一个锁对象。

我该如何坚持这一点?

我能想到的唯一解决方案是将 FileCookieJar.save 和 FileCookieJar.load 用于 stringIO 对象。但是有更好的方法吗?

0 投票
2 回答
1004 浏览

python - 如何腌制numpy的Inf对象?

当试图腌制 numpy 中定义的对象 Inf 时(我认为),转储正常,但加载失败:

这是为什么?而且 - 有没有办法解决这个问题?我想腌制有 Inf 的东西——把它改成别的东西会破坏程序的优雅......

谢谢

0 投票
12 回答
66142 浏览

python - 有没有一种简单的方法来腌制一个 python 函数(或者序列化它的代码)?

我正在尝试通过网络连接传输功能(使用 asyncore)。有没有一种简单的方法来序列化一个 python 函数(至少在这种情况下不会有副作用),以便像这样传输?

理想情况下,我希望有一对类似于这些的功能:

0 投票
4 回答
2604 浏览

python - 分析时Python中的“内置方法解码”是什么意思?

我试图让我的程序更快,所以我正在分析它。目前最主要的原因是:

这究竟是什么?我从不在代码中的任何地方调用“解码”。它读取文本文件,但我不相信它们是 unicode 编码的。

0 投票
1 回答
600 浏览

python - 稳定的python序列化(例如没有pickle模块重定位问题)

我正在考虑使用数量来定义一个数字及其单位。该值很可能必须存储在磁盘上。您可能知道,pickling 有一个主要问题:如果您重新定位模块,unpickling 将无法解析类,并且您将无法 unpickle 信息。这种行为有一些解决方法,但它们确实是解决方法。

我为这个问题设想的一个解决方案是创建一个给定单元唯一的字符串编码。一旦你从磁盘获得了这个编码,你就将它传递给 Quantities 模块中的一个工厂方法,该方法将它解码为一个适当的单元实例。好处是即使你重新定位模块,只要你将魔法字符串令牌传递给工厂方法,一切仍然有效。

这是一个已知的概念吗?

0 投票
2 回答
2712 浏览

python - Python:酸洗模块的替代方案

我正在开发我的程序GarlicSim,其中用户创建了一个模拟,然后他能够根据需要对其进行操作,然后他可以将其保存到文件中。

我最近尝试实现保存功能。我很自然地想到要腌制Project包含整个模拟的对象。

问题是,该Project对象还包括一个模块——即“模拟包”,它是一个包/模块,其中包含定义模拟的几个关键对象,主要是函数。我需要将它们与模拟一起保存,但似乎不可能腌制模块,正如我在尝试腌制Project对象并引发异常时所看到的那样。

解决该限制的好方法是什么?

(我还应该注意,模拟包是在程序中动态导入的。)

0 投票
3 回答
1350 浏览

python - Python中的优雅降级酸洗

(您可能会阅读问题以了解一些背景)

我想有一种优雅的降级方式来在 Python 中腌制对象。

当pickle一个对象时,我们称它为main object,有时Pickler会抛出一个异常,因为它不能pickle主对象的某个子对象。例如,我经常遇到的一个错误是“不能腌制模块对象”。那是因为我从主对象引用了一个模块。

我知道我可以写一些东西来用包含模块属性的外观替换该模块,但这会有其自身的问题(1)。

所以我想要的是一个酸洗功能,它会自动将模块(以及任何其他难以酸洗的对象)替换为包含其属性的外观。这可能不会产生完美的酸洗,但在许多情况下就足够了。

有这样的吗?有谁知道如何解决这个问题?


(1) 一个问题是该模块可能在其中引用其他模块。

0 投票
1 回答
1867 浏览

python - 在 Python 2 中从 Python 3 中提取类

如果使用协议 2 腌制 Python 3 类,它应该在 Python 2 中工作,但不幸的是,这会失败,因为某些类的名称已更改。

假设我们有如下调用的代码。

发件人

接收者

给出一个特定的情况,如果obj={},那么给出的错误是:

ImportError:没有名为 builtins 的模块

这是因为 Python 2__builtin__改为使用。

这个问题是解决这个问题的最好方法。

0 投票
2 回答
254 浏览

python - 自定义 Python 的 `copy` 模块如何处理我的对象

copy文档中:

类可以使用相同的接口来控制它们用来控制酸洗的复制。

[...]

为了让一个类定义它自己的复制实现,它可以定义特殊的方法__copy__()__deepcopy__()

那么是哪一个呢?__setstate__()__getstate__()酸洗时使用, or __copy__()and __deepcopy__()?

0 投票
3 回答
3460 浏览

python - 泡菜和复制持久对象的类?

我正在尝试为只读对象编写一个类,该对象不会真正与copy模块一起复制,并且当它被腌制以在进程之间传输时,每个进程将保持不超过一个副本,无论如何很多时候,它将作为“新”对象传递。已经有类似的东西了吗?