7

データの保存と読み込みに使用される Python モジュールに関して、StackOverflow には散在する投稿が多数あります。

私自身、jsonpickleに精通しており、 pytables についても聞いたことがあります。おそらくもっとたくさんあります。また、各モジュールは特定の目的に適合しているようで、独自の制限があります (たとえば、pickle で大きなリストまたは辞書をロードすると、まったく機能する場合でも時間がかかります)。したがって、可能性の適切な概要を把握しておくとよいでしょう。

次に、データの保存とロードに使用されるモジュールの包括的なリストを提供し、各モジュールについて説明してください。

  • モジュールの一般的な目的は何か、
  • その限界、
  • 他のモジュールよりもこのモジュールを選択する理由は何ですか?
4

2 に答える 2

7

マーシャル:

  • 長所:

    • Python 値をバイナリ形式で読み書きできます。pickleしたがって、 (文字ベースの)よりもはるかに高速です。
  • 短所:

    • すべての Python オブジェクト タイプがサポートされているわけではありません。ビルトインのサブクラスなどの一部のサポートされていない型は、正しくマーシャリングおよびアンマーシャリングされているように見えます
    • 誤ったデータや悪意を持って作成されたデータに対して安全であることを意図していません。
    • Python のメンテナは、必要に応じて下位互換性のない方法でマーシャル形式を変更する権利を留保します。

棚に置く

  • 長所:

    • シェルフ内の値は、基本的に任意の Python オブジェクトにすることができます
  • 短所:

    • 保留オブジェクトへの同時読み取り/書き込みアクセスはサポートされていません

ZODB (@Duncan が提案)

  • プロ:

    • 透過的な永続性
    • 完全なトランザクション サポート
    • プラグ可能なストレージ
    • スケーラブルなアーキテクチャ
  • 短所

    • 標準ライブラリの一部ではありません。
    • 永続化に使用される元の Python オブジェクト モデルが利用可能でない限り、(簡単に) データをリロードできません (バージョンの問題とデータの移植性を考慮してください)。
于 2012-01-17T11:55:28.040 に答える
4

標準の lib データ永続化モジュールの概要があります。

于 2012-01-17T12:14:24.847 に答える