問題タブ [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.
python - CookieJar をピクルスにする方法は?
ピクルしたい CookieJar を持つオブジェクトがあります。
しかし、ご存知のように、pickle はロック オブジェクトを含むオブジェクトをチョークします。そして、なんらかの恐ろしい理由で、CookieJar にはロック オブジェクトがあります。
これを永続化するにはどうすればよいですか?
私が考えることができる唯一の解決策は、FileCookieJar.save と FileCookieJar.load を stringIO オブジェクトに使用することです。しかし、より良い方法はありますか?
python - numpyのInfオブジェクトをピクルスにする方法は?
numpyで定義されているようにオブジェクトInfをピクルスしようとすると(私は思う)、ダンプはOKになりますが、ロードは失敗します:
何故ですか?さらに、それを修正する方法はありますか?Infが含まれているものを漬け込みたいのですが、それを別のものに変更すると、プログラムの優雅さが損なわれます...
ありがとう
python - Python関数をピクルスにする(またはコードをシリアル化する)簡単な方法はありますか?
ネットワーク接続を介して関数を転送しようとしています(非同期を使用)。このような転送のためにPython関数(この場合は少なくとも副作用がないもの)をシリアル化する簡単な方法はありますか?
理想的には、次のような2つの関数が必要です。
python - プロファイリング時にPythonで「組み込みメソッドデコード」とはどういう意味ですか?
プログラムを高速化しようとしているので、プロファイリングしています。現在、一番の理由は次のとおりです。
これは正確には何ですか?コードのどこでも「デコード」を呼び出すことはありません。テキストファイルを読み取りますが、Unicode でエンコードされているとは思えません。
python - 安定したPythonシリアル化(例:pickleモジュールの再配置の問題なし)
数量を使用して、その単位とともに数値を定義することを検討しています。この値は、ほとんどの場合、ディスクに保存する必要があります。ご存知かもしれませんが、ピクルスには1つの大きな問題があります。モジュールを移動すると、ピクルスを解除してもクラスを解決できず、情報のピクルスを解除できなくなります。この動作には回避策がありますが、実際には回避策です。
この問題について私が想像した解決策は、特定のユニットを一意にエンコードする文字列を作成することです。このエンコーディングをディスクから取得したら、Quantitiesモジュールのファクトリメソッドに渡します。ファクトリメソッドは、適切なユニットインスタンスにデコードします。利点は、モジュールを再配置しても、マジックストリングトークンをファクトリメソッドに渡す限り、すべてが機能することです。
これは既知の概念ですか?
python - Python: モジュールをピクルする代替手段
私は自分のプログラムGarlicSimに取り組んでいます。このプログラムでは、ユーザーがシミュレーションを作成し、それを好きなように操作して、ファイルに保存できます。
最近、保存機能を実装してみました。Project
私が自然に思いついたのは、シミュレーション全体を含むオブジェクトをピクルすることです。
問題は、Project
オブジェクトにもモジュールが含まれていることです。これは、シミュレーションを定義するいくつかの重要なオブジェクト (主に関数) を含むパッケージ/モジュールである「シミュレーション パッケージ」です。シミュレーションと一緒に保存する必要がありますが、Project
オブジェクトをピクルしようとしたときに例外が発生したときに目撃したように、モジュールをピクルすることは不可能のようです。
その制限を回避する良い方法は何でしょうか?
(シミュレーション パッケージがプログラムに動的にインポートされることにも注意してください。)
python - Python での適切な分解酸洗い
(背景についてこの質問を読むことができます)
Python でオブジェクトをピクルするための、適切に分解する方法が必要です。
オブジェクトをピクルするとき、それをメイン オブジェクトと呼びましょう。ピックラーは、メイン オブジェクトの特定のサブオブジェクトをピクルできないため、例外を発生させることがあります。たとえば、私が頻繁に受け取るエラーは、「モジュール オブジェクトをピクルできません」というものです。これは、メイン オブジェクトからモジュールを参照しているためです。
そのモジュールを、モジュールの属性を含むファサードに置き換えるために少し何かを書くことができることはわかっていますが、それには独自の問題があります(1)。
したがって、私が望むのは、モジュール (およびその他のピクルが難しいオブジェクト) を、それらの属性を含むファサードに自動的に置き換えるピクル関数です。これでは完全なピクルスにはならないかもしれませんが、多くの場合はそれで十分です。
このようなことはありますか?これにアプローチする方法を知っている人はいますか?
(1) 1 つの問題は、モジュールがその中から他のモジュールを参照している可能性があることです。
python - Python 2 で Python 3 からクラスを unpickle する
プロトコル 2 を使用して Python 3 クラスを pickle 化すると、Python 2 でも動作するはずですが、残念ながら、一部のクラスの名前が変更されているため、これは失敗します。
次のように呼び出されるコードがあるとします。
送信者
レシーバー
特定のケースを与えるために、 の場合、obj={}
与えられたエラーは次のとおりです。
ImportError: builtins という名前のモジュールがありません
これは、Python 2 が__builtin__
代わりに使用するためです。
質問は、この問題を解決するための最良の方法です。
python - Pythonの`copy`モジュールがオブジェクトを処理する方法をカスタマイズする
copy
ドキュメントから:
クラスは、ピクルスを制御するために使用するのと同じインターフェースを使用して、コピーを制御できます。
[...]
クラスが独自のコピー実装を定義するために、特別なメソッド
__copy__()
と__deepcopy__()
それで、それはどれですか?__setstate__()
そしてそれはピクルスにするときに使用されます__getstate__()
、または?__copy__()
__deepcopy__()
python - pickle および copy-persistent オブジェクトのクラス?
モジュールで実際にはコピーされない読み取り専用オブジェクトのクラスを作成しようとしていcopy
ます。プロセス間で転送するためにピクルされると、各プロセスはそのコピーを1つしか保持しません。多くの場合、「新しい」オブジェクトとして渡されます。すでにそのようなものはありますか?