問題タブ [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 - __reduce__と__reduce_ex__の違いは何ですか?
これらの方法はピクルス/アンピクルス用であり、reduce組み込み関数とは関係がないことを理解していますが、2つの違いは何ですか?なぜ両方が必要なのですか?
python - Python 辞書を sqlite3 テキスト フィールドにピクルできますか?
私が知っておくべき落とし穴はありますか?テキスト フィールドに保存できますか、それとも blob を使用する必要がありますか? (私は pickle にも sqlite にもあまり詳しくないので、高レベルの設計アイデアを使って適切なツリーを作成していることを確認したかったのです。)
python - xml から Python オブジェクト表現を作成するモジュール
XMLからPythonオブジェクト表現を作成するための扱いやすいPythonネイティブモジュールを探しています。
Google 経由でいくつかのモジュールを見つけました (そのうちの 1 つはXMLObject です) が、それらすべてを試したくありませんでした。
そのようなことをする最善の方法は何だと思いますか。
EDIT:私が読みたいXMLは私が生成したものではないことを言い忘れました。これは、私が制御できない構造の既存の XML ファイルです。
python - S60 電話との間で Python オブジェクトをシリアル化する
CherryPy ベースのサーバーと Symbian 電話で実行されている Python クライアントの間で汎用Python オブジェクトをシリアル化する方法を探しています。
Cerealizerについては知っていますが、使用する前にクラスを登録する必要があり (これは避けたいと思います)、あまり成熟していないように見えます..では、何を使用しますか? ソースから抽出された Python 2.2 の pickle モジュールでしょうか? XML、JSON? いくつかある図書館のうちのどれ?:)
python - Pythonの基本型の軽量ピクル?
私がやりたいのは、文字列または int のタプルをシリアライズおよびアンシリアライズすることだけです。
pickle.dumps() を見ましたが、バイトのオーバーヘッドが大きいです。基本的に、必要なスペースの約 4 倍を占めるように見えます。その上、必要なのは基本的な型だけで、オブジェクトをシリアル化する必要はありません。
marshal はスペースの点で少し優れていますが、結果は厄介な \x00 バイトでいっぱいです。理想的には、結果を人間が読めるようにしたいと考えています。
repr() と eval() だけを使用することを考えましたが、eval() を使用せずにこれを達成できる簡単な方法はありますか?
これは、ファイルではなくデータベースに保存されます。TEXT 列と varchar の要求に違いが生じる可能性があるため、バイト オーバーヘッドは重要です。一般に、データのコンパクトさは db パフォーマンスのすべての領域に影響します。
python - ImportError: copy_reg pickle という名前のモジュールがありません
MySQL データベースに BLOB として保存されているオブジェクトを unpickle しようとしています。pickle 化されたオブジェクトを手動で生成してデータベースに保存しましたが、オブジェクトを unpickle しようとすると、次の不可解な例外が発生します。
ImportError: copy_reg という名前のモジュールがありません
なぜこれが起こるのかについてのアイデアはありますか?
複製方法
注: Windows PC ではステップ 1 を実行し、Linux PC ではステップ 3 と 4 を実行する必要があります。
1) Windows PC の場合:
2) text.txt の内容を、Linux で実行されている MySQL データベースの blob フィールドに手動で挿入します。
3) Linux マシンで実行されている Python で、MySQL から列の内容をフェッチします。
4) blob 列の内容を data という変数に入れると仮定して、これを試してください。
python - ピクルスした後、Python isinstanceで予期しない動作が発生するのはなぜですか?
isinstanceの使用が有害であるかどうかはさておき、Pickleを介してオブジェクトをシリアル化/逆シリアル化した後にisinstanceを評価しようとすると、次の問題が発生しました。
誰かがこの状況でインスタンスが失敗する理由に光を当てることができますか?言い換えれば、Pythonがこれらのオブジェクトが2つの異なるクラスであると考えるのはなぜですか?2番目のクラス定義を削除すると、正常にisinstance
機能します。
python - 壊れた python "cPickle" ダンプを回復するには?
rss2email
簡単に利用できるように、多数の RSS フィードをメールに変換するために使用しています。つまり、今日はひどい方法で壊れたので、私はそれを使用していました。実行するたびに、次のバックトレースのみが表示されます。
このバックトレースから構築できた唯一の有用な事実は、すべての構成と実行時の状態~/.rss2email/feeds.dat
をrss2email
保持するファイルが何らかの形で壊れているということです。どうやら、rss2email
その状態を読み取り、実行ごとに使用してダンプしcPickle
ます。
巨大な (>12MB)ファイル'sxOYAAuyzSx0WqN3BVPjE+6pgPU'
で、上記の文字列を含む行を見つけました。feeds.dat
私の訓練されていない目には、ダンプが切り捨てられたり、破損したりしているようには見えません。
ファイルを再構築するためにどのようなアプローチを試すことができますか?
Python のバージョンは、Debian/不安定なシステムでは 2.5.4 です。
編集
Peter Gibson と JF Sebastian は、pickle ファイルから直接ロードすることを提案しており、私は以前にそれを試しました。どうやら、Feed
で定義されているクラスrss2email.py
が必要なので、ここに私のスクリプトがあります:
「プレーンな」pickle バリアントは、次のトレースバックを生成します。
バリアントは、それ自体cPickle
を呼び出すのと本質的に同じものを生成し
ます。r2e
編集2
私のテスト スクリプトに「printf デバッグ」を入れることに関する JF Sebastian の提案に従ってFeed.__setstate__
、これらは Python が救済される前の最後の数行です。
Python 2.4.4-2 を使用する Debian/etch ボックスでも同じことが起こります。
python - 文字列を漬けるより効率的な方法
pickleモジュールは、pickle化時に文字列エスケープ文字を使用しているようです。これは、たとえばnumpy配列では非効率になります。次のことを考慮してください
長さはそれぞれ1133文字と4249文字です。
z.dumps()は「\ x00 \ x00」(文字列の実際のゼロ)のようなものを明らかにしますが、pickleは文字列のrepr()関数を使用しているようで、「'\ x00 \ x00'」(ゼロはASCIIゼロ)を生成します。
つまり、(z.dumps()の「0」== False)および(cPickle.dumps(z.dumps())の「0」== True)