問題タブ [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をピクルスしようとすると(私は思う)、ダンプはOKになりますが、ロードは失敗します:

何故ですか?さらに、それを修正する方法はありますか?Infが含まれているものを漬け込みたいのですが、それを別のものに変更すると、プログラムの優雅さが損なわれます...

ありがとう

0 投票する
12 に答える
66142 参照

python - Python関数をピクルスにする(またはコードをシリアル化する)簡単な方法はありますか?

ネットワーク接続を介して関数を転送しようとしています(非同期を使用)。このような転送のためにPython関数(この場合は少なくとも副作用がないもの)をシリアル化する簡単な方法はありますか?

理想的には、次のような2つの関数が必要です。

0 投票する
4 に答える
2604 参照

python - プロファイリング時にPythonで「組み込みメソッドデコード」とはどういう意味ですか?

プログラムを高速化しようとしているので、プロファイリングしています。現在、一番の理由は次のとおりです。

これは正確には何ですか?コードのどこでも「デコード」を呼び出すことはありません。テキストファイルを読み取りますが、Unicode でエンコードされているとは思えません。

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

python - 安定したPythonシリアル化(例:pickleモジュールの再配置の問題なし)

数量を使用して、その単位とともに数値を定義することを検討しています。この値は、ほとんどの場合、ディスクに保存する必要があります。ご存知かもしれませんが、ピクルスには1つの大きな問題があります。モジュールを移動すると、ピクルスを解除してもクラスを解決できず、情報のピクルスを解除できなくなります。この動作には回避策がありますが、実際には回避策です。

この問題について私が想像した解決策は、特定のユニットを一意にエンコードする文字列を作成することです。このエンコーディングをディスクから取得したら、Quantitiesモジュールのファクトリメソッドに渡します。ファクトリメソッドは、適切なユニットインスタンスにデコードします。利点は、モジュールを再配置しても、マジックストリングトークンをファクトリメソッドに渡す限り、すべてが機能することです。

これは既知の概念ですか?

0 投票する
2 に答える
2712 参照

python - Python: モジュールをピクルする代替手段

私は自分のプログラムGarlicSimに取り組んでいます。このプログラムでは、ユーザーがシミュレーションを作成し、それを好きなように操作して、ファイルに保存できます。

最近、保存機能を実装してみました。Project私が自然に思いついたのは、シミュレーション全体を含むオブジェクトをピクルすることです。

問題は、Projectオブジェクトにもモジュールが含まれていることです。これは、シミュレーションを定義するいくつかの重要なオブジェクト (主に関数) を含むパッケージ/モジュールである「シミュレーション パッケージ」です。シミュレーションと一緒に保存する必要がありますが、Projectオブジェクトをピクルしようとしたときに例外が発生したときに目撃したように、モジュールをピクルすることは不可能のようです。

その制限を回避する良い方法は何でしょうか?

(シミュレーション パッケージがプログラムに動的にインポートされることにも注意してください。)

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

python - Python での適切な分解酸洗い

(背景についてこの質問を読むことができます)

Python でオブジェクトをピクルするための、適切に分解する方法が必要です。

オブジェクトをピクルするとき、それをメイン オブジェクトと呼びましょう。ピックラーは、メイン オブジェクトの特定のサブオブジェクトをピクルできないため、例外を発生させることがあります。たとえば、私が頻繁に受け取るエラーは、「モジュール オブジェクトをピクルできません」というものです。これは、メイン オブジェクトからモジュールを参照しているためです。

そのモジュールを、モジュールの属性を含むファサードに置き換えるために少し何かを書くことができることはわかっていますが、それには独自の問題があります(1)。

したがって、私が望むのは、モジュール (およびその他のピクルが難しいオブジェクト) を、それらの属性を含むファサードに自動的に置き換えるピクル関数です。これでは完全なピクルスにはならないかもしれませんが、多くの場合はそれで十分です。

このようなことはありますか?これにアプローチする方法を知っている人はいますか?


(1) 1 つの問題は、モジュールがその中から他のモジュールを参照している可能性があることです。

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

python - Python 2 で Python 3 からクラスを unpickle する

プロトコル 2 を使用して Python 3 クラスを pickle 化すると、Python 2 でも動作するはずですが、残念ながら、一部のクラスの名前が変更されているため、これは失敗します。

次のように呼び出されるコードがあるとします。

送信者

レシーバー

特定のケースを与えるために、 の場合、obj={}与えられたエラーは次のとおりです。

ImportError: builtins という名前のモジュールがありません

これは、Python 2 が__builtin__代わりに使用するためです。

質問は、この問題を解決するための最良の方法です。

0 投票する
2 に答える
254 参照

python - Pythonの`copy`モジュールがオブジェクトを処理する方法をカスタマイズする

copyドキュメントから:

クラスは、ピクルスを制御するために使用するのと同じインターフェースを使用して、コピーを制御できます。

[...]

クラスが独自のコピー実装を定義するために、特別なメソッド__copy__()__deepcopy__()

それで、それはどれですか?__setstate__()そしてそれはピクルスにするときに使用されます__getstate__()、または?__copy__()__deepcopy__()

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

python - pickle および copy-persistent オブジェクトのクラス?

モジュールで実際にはコピーされない読み取り専用オブジェクトのクラスを作成しようとしていcopyます。プロセス間で転送するためにピクルされると、各プロセスはそのコピーを1つしか保持しません。多くの場合、「新しい」オブジェクトとして渡されます。すでにそのようなものはありますか?