問題タブ [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 投票する
6 に答える
23216 参照

python - Pythonクロスプラットフォームのピクルファイルはありますか?

私の小さなpythonスクリプトを作成しました。Linux で pickle ファイルを保存し、それを Windows で使用してから、再び Linux で使用しましたが、そのファイルは Linux では機能しませんが、Windows では完全に機能しています。pythonはcoss-platformですが、ピクルファイルはそうではありません。これに対する解決策はありますか?

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

ruby-on-rails - レール/きゅうり/漬物

したがって、機能ファイルには、ログインのバックグラウンドステップがあります。

次のステップでは、user_idを含めることができるようにしたいのですが、ログインした@current_userを取得する方法がわかりません。

@current_userを使用して正しい関係を作成するにはどうすればよいですか?

ありがとう。

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

python - Python で staticmethod をピクルする

静的クラス メソッドへの参照を含むオブジェクトをピクルしようとしています。Pickle は (たとえば で)存在しないためmodule.MyClass.foo、pickle できないことを示して失敗します。 次の解決策を思いつきました。ラッパー オブジェクトを使用して呼び出し時に関数を見つけ、コンテナー クラスと関数名を保存します。module.foo

私は疑問に思っていますが、そのようなオブジェクトをピクルするためのより良い - より標準的な方法はありますか? pickleグローバルプロセスに変更を加えたくはありませんが(copy_reg例を使用)、次のパターンは素晴らしいでしょう: class MyClass(object): @picklable_staticmethod def foo(): print "done."

foo特に関数から所有者クラスを抽出できなかったため、これに対する私の試みは失敗しました。私は明示的な仕様 ( など) で解決するつもりでしたが、クラスが定義されている場所でクラス@picklable_staticmethod(MyClass)を参照する方法を知りません。MyClass

どんなアイデアも素晴らしいでしょう!

よなたん

0 投票する
6 に答える
3747 参照

python - シングルトン python ジェネレーター? または、Python ジェネレーターをピクルしますか?

ネストされたジェネレーターで次のコードを使用して、テキスト ドキュメントを反復処理し、get_train_minibatch(). テキスト ドキュメントの同じ場所に戻ることができるように、ジェネレーターを永続化 (ピクル) したいと考えています。ただし、ジェネレーターをピクルすることはできません。

  • 簡単な回避策はありますか? ポジションを保存して停止したところから再開できますか? おそらくget_train_example()、シングルトンを作成できるので、いくつかのジェネレーターが横たわっていません。次に、このモジュールで、進行状況を追跡するグローバル変数を作成できますget_train_example()

  • このジェネレーターを永続化できるようにするための、より良い (よりクリーンな) 提案はありますか?

[編集: さらに 2 つのアイデア:

  • ジェネレーターにメンバー変数/メソッドを追加して、generator.tell() を呼び出してファイルの場所を見つけることはできますか? そうすれば、次回ジェネレーターを作成するときに、その場所をシークするように要求できるからです。このアイデアは、すべての中で最も単純に聞こえます。

  • クラスを作成し、ファイルの場所をメンバー変数にしてから、ジェネレーターをクラス内に作成し、生成されるたびにファイルの場所のメンバー変数を更新することはできますか? そうすれば、それがファイルのどこまで進んでいるかを知ることができるからです。

]

コードは次のとおりです。

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

python - Pythonで動的に作成されたネストされたクラスをピクルスするにはどうすればよいですか?

ネストされたクラスがあります:

..そしてこのようなネストされたクラスタイプ(そのインスタンスではない)を参照するオブジェクト

ObjectToPickleクラスのインスタンスをシリアル化しようとすると、次のようになります。

PicklingError:ピクルスできません<class'setmanager.app.site.widget_data_types.TextType'>

Pythonでネストされたクラスをピクルスにする方法はありますか?

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

python - マルチプロセッシング使用時の奇妙な unpickling エラー

マルチプロセッシングを使用すると、次のエラーが発生します。

Cレベルで何かがおかしいように聞こえますが、これが何を意味するのかまったくわかりません。誰でもこれに光を当てることができますか?

更新:わかりましたので、これを修正する方法を見つけました。しかし、私はまだ少し困惑しています。私はこのクラスのインスタンスを返しています:

このオブジェクトのインスタンスを返すと、エラーが発生します。ただし、to_dict辞書を呼び出して返すと、機能します。私は何を間違っていますか?

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

python - Python 辞書を明示的にシリアル化せずに Google の BigTable データストアに保存できますか?

Google の BigTable データストアに保存したい Python 辞書があります (これはdb.Modelクラスの属性です)。

これを行う簡単な方法はありますか?つまり、db.DictionaryProperty? または、辞書をシリアル化するために pickle を使用する必要がありますか? 私の辞書は比較的単純です。キーとして文字列で構成されますが、一部のキーのサブディクショナリも含まれる場合があります。例えば:

PS: 可能であれば、テキストではなくバイナリとしてシリアライズしたいと思います。

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

python - Python-numpy.voidオブジェクトのピクルスが失敗する

キーはうまく出てきて、値はめちゃくちゃです。バイナリモードでファイルをロードするのと同じことを試しました。問題を修正しませんでした。私が間違っていることについて何か考えはありますか?


編集:これがバイナリのコードです。選択されていないオブジェクトでは値が異なることに注意してください。


OK、問題を特定しましたが、なぜそうなのかわかりません。まず、明らかに私がピクルスにしているのはタプルではなく(それらはそのように見えますが)、代わりにnumpy.voidタイプです。これが問題を説明するためのシリーズです。

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

python - このコードが「complex」を返すのはなぜですか?

なんで?
次のコードは、呼び出される pickle 関数です。

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

python - プログラムセッション(pickle、json、xml、データベース、その他)間で複雑なPythonデータ構造を保存するための最良の方法

プログラムセッション間で複雑なPythonデータ構造を保存するための最良の手法に関するアドバイスを探しています。

これまでに私が思いついたテクニックのリストは次のとおりです。

  • ピクルス/チクル
  • json
  • jsonpickle
  • xml
  • データベース(SQLiteなど)

Pickleは最も簡単で最速の手法ですが、私の理解では、pickleの出力がPython 2.x / 3.xのさまざまなバージョン間、またはPythonの32ビットと64ビットの実装間で機能するという保証はありません。

Jsonは、単純なデータ構造に対してのみ機能します。Jsonpickleはこれを修正しているようで、Pythonのさまざまなバージョンで機能するように作成されているようです。

XMLまたはデータベースへのシリアル化は可能ですが、手動でシリアル化を行う必要があるため、余分な労力が必要になります。

ありがとう、マルコム