問題タブ [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 になる

HIGHEST_PROTOCOL を使用して、cPickle を使用して整数のリストをピクルします。

次のコードを使用してこれを unpickle しようとすると、EOFError が発生します。unpickle する前にオフセット 0 に「シーク」しようとしましたが、エラーは解決しません。

何か案は?

0 投票する
1 に答える
1649 参照

ruby-on-rails - キュウリと factory_girl で pickle を使用して、関連付けられたモデルを作成し、パラメーターをネストされたモデルに渡す

私は次のモデルを持っています:

そして、私は次の工場を持っています:

これが私の特徴です:

これを改善する方法はありますか?私はこのようなものを書くことができるようにしたいと思います:

そして、次の行に沿って何かを作成します。

ネストされたマッチャーが必要です。このためのステップを提案できますか?

または、これを達成する別の方法を提案できますか?

0 投票する
3 に答える
11875 参照

python - オブジェクトをピクルスしようとすると、クラスが__slots__を定義するときにエラーが発生するのはなぜですか?

定義した(新しいスタイルの)クラスのオブジェクトをピクルスにしようとしています。しかし、次のエラーが発生します。

__slots__クラスで明示的に定義していません。私が暗黙のうちにそれを定義したことはありますか?これを回避するにはどうすればよいですか?定義する必要があります__getstate__か?

更新: gnibblerは良い例を選びました。私がピクルスしようとしているオブジェクトのクラスは、ソケットをラップします。(今私はそう思います)ソケットは定義しますが、正当な理由は__slots__ありません。__getstate__プロセスが終了すると、別のプロセスが前のプロセスのソケット接続を選択解除して使用することはできないと思います。したがって、Alex Martelliの優れた回答を受け入れている間は、オブジェクト参照を「共有」するためにピクルスにするのとは異なる戦略を追求する必要があります。

0 投票する
1 に答える
673 参照

python - Python でのカスタム インスタンスの unpickling: オブジェクト ディクショナリを更新する必要がありますか?それとも置き換えても問題ありませんか?

特定のクラスのオブジェクトをピクル解除する方法を定義するとき、 __setstate__ を介して安全に実行できることを収集します

pickle 状態がディクショナリの場合。これは、stackoverflow の回答で見たものです。

ただし、これは、呼び出されself.__dict__たときに何らかのデータが含まれている場合に備えて取られる安全対策ですか? __setstate__または、単に実行するよりも高速でクリーンですか

古いものを強制self.__dict__的にガベージコレクションするのはどれですか?

0 投票する
7 に答える
102560 参照

python - ピクルスまたはjson?

キーが s 型で値がs の小さなdictオブジェクトをディスクに保存し、それを復元する必要があります。このようなもの:strint

最適なオプションとその理由は何ですか? pickleまたはでシリアル化しsimplejsonますか?

Python 2.6 を使用しています。

0 投票する
3 に答える
3454 参照

python - cPickle の使用に関する問題

この例を機能させるのを手伝ってもらえますか?

シリアル化された dict が存在する場合はロードし、変更して再度ダンプしたいと思います。ファイルを開くために使用しているモードに問題があると思いますが、正しい方法がわかりません。

2 回実行してエラーを確認します。

0 投票する
3 に答える
1342 参照

django - suds-objectのキャッシング。Unicodeの問題

私はsudshttps : //fedorahosted.org/suds/を使用してSOAPを使用してデータをフェッチしています。データをフェッチしている場所からサーバーに過負荷がかからないように、(memcachedを使用して)結果をキャッシュしたいと思います。問題は、キャッシュされたデータをフェッチするときです。フェッチは正常に機能しますが、djangoはデータ(force_unicode)をデコードしようとし、次のように失敗します。

これは、結果をキャッシュするために使用するものです(ここで、result = suds-object)。cPickleを使用します(念のためにpickleを試しましたが、成功しませんでした)。

泡の応答はユニコードです。

0 投票する
3 に答える
1234 参照

python - cPickle を使用して 2.4 で array.array をピッキングする

私はpython 2.4で構築されたプロジェクトに取り組んでいます(これは組み込みのpythonプロジェクトであるため、使用するpythonのバージョンを選択できません)。アプリケーション全体で、array.arrayデータを保存するために使用します。

array.arrayオブジェクトの酸洗いのサポートは、2.5 で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の可能性があります)。

ありがとう