问题标签 [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 投票
1 回答
8379 浏览

python - python 2.6 cPickle.load 导致 EOFError

我使用 cPickle 来腌制整数列表,使用 HIGHEST_PROTOCOL,

当我尝试使用以下代码取消腌制时,我得到一个 EOFError。我尝试在 unpickling 之前“寻求”偏移 0,但错误仍然存​​在。

有任何想法吗?

0 投票
1 回答
1649 浏览

ruby-on-rails - 使用 pickle 与 cucumber 和 factory_girl 创建关联模型并将参数传递给嵌套模型

我有以下型号:

我有以下工厂:

所以这是我的特点:

有什么办法可以改善这一点吗?我希望能够写出这样的东西:

它创造了一些类似的东西:

几乎我需要一个嵌套匹配器。你能为此建议一个步骤吗?

或者你能建议一种替代方法来实现这一目标吗?

0 投票
3 回答
11875 浏览

python - 为什么我在尝试腌制对象时收到关于定义 __slots__ 的类的错误?

我正在尝试腌制我定义的(新型)类的对象。但我收到以下错误:

我没有__slots__在课堂上明确定义。我所做的事情是否隐含地定义了它?我该如何解决这个问题?我需要定义__getstate__吗?

更新: gnibbler选择了一个很好的例子。我试图腌制的对象的类包装了一个套接字。(我现在想到)套接字定义__slots__并没有__getstate__充分的理由。我假设一旦一个进程结束,另一个进程就不能解开并使用前一个进程的套接字连接。因此,虽然我接受了Alex Martelli的出色回答,但我将不得不采取与酸洗不同的策略来“共享”对象引用。

0 投票
1 回答
673 浏览

python - Python 中的自定义实例 unpickling:应该更新对象字典,还是替换它?

当通过__setstate__定义某个类的对象应该如何被取消腌制时,我认为这样做是安全的

当腌制状态是字典时。这是我在 stackoverflow 上的答案中看到的。

但是,这是一种安全措施,以防万一在调用self.__dict__时包含一些数据?__setstate__或者它只是比做更快更干净

这迫使旧self.__dict__的垃圾收集?

0 投票
7 回答
102560 浏览

python - 泡菜还是json?

我需要将一个小dict对象保存到磁盘,它的键是类型str,值是ints ,然后恢复它。像这样的东西:

什么是最好的选择,为什么?pickle用或序列化它simplejson

我正在使用 Python 2.6。

0 投票
3 回答
3454 浏览

python - 使用 cPickle 的问题

你能帮我做这个例子吗?

如果存在,我想加载一个序列化的字典,修改它并再次转储它。我想我用来打开文件的模式有问题,但我不知道正确的方法。

运行两次以查看错误:

0 投票
3 回答
1342 浏览

django - 缓存 suds 对象。统一码问题

我正在使用 suds https://fedorahosted.org/suds/使用 SOAP 获取数据。我想缓存结果(使用 memcached),以免从我获取数据的服务器超载。问题是在获取缓存数据时。获取它工作正常,但随后 django 尝试解码数据(force_unicode)并失败并显示以下内容:

这是我用来缓存结果的(其中结果 = suds-object)。使用 cPickle (并尝试了 pickle 以防万一,但没有成功,不足为奇)。

suds 响应是 unicode 格式的。

0 投票
3 回答
1234 浏览

python - 使用 cPickle 在 2.4 中酸洗 array.array

我正在开发一个基于 python 2.4 的项目(它是一个嵌入式 python 项目,所以我没有选择使用的 python 版本)。在整个应用程序中,我们使用array.array来存储数据。

在 2.5中添加了对酸洗array.array对象的支持pickle(和)。cPickle当使用纯 python pickle 类(我们将 Pickler/Unpickler 子类化来处理数组)时,我们在 2.4 中有一个可行的解决方法,但这不适用于 cPickle(由于性能问题,我们需要这个)。

有什么建议么?

编辑——解决方案:

这是似乎工作的最终代码(感谢您的建议):

0 投票
3 回答
14986 浏览

python - 从python中的酸洗中排除对象的字段

我想避免酸洗类实例中的某些字段。目前,在酸洗之前,我只是将这些字段设置为无,但我想知道是否有更优雅的解决方案?

0 投票
2 回答
2752 浏览

python - 腌制对象版本控制

我正在做一个项目,我们有大量对象被序列化并使用pickle/存储到磁盘cPickle

随着项目生命周期的推进(在向现场客户发布后),未来的功能/修复可能会要求我们更改一些持久对象的签名。这可能是添加字段、删除字段,甚至只是更改一条数据的不变量。

是否有一种标准方法来标记将被腌制为具有特定版本的对象(如serialVersionUID在 Java 中)?基本上,如果我正在恢复 Foo 版本 234 的实例,但当前代码是 236,我希望收到一些关于 unpickle 的通知。我是否应该继续推出自己的解决方案(可能是 PITA)。

谢谢