最も重要なことは、特にパフォーマンスや高い信頼性が必要な場合を除いて、コードを最も簡単に記述できるようにすることです。
データが非常に構造化されている場合(そしてSQLを知っているか、学習する意思がある場合)、のようなデータベースを使用するのsqlite3
が適切な場合があります。(データベースのサイズとRAMに関するコメントは無視してください。データの構造上、非常に小さなデータセットでもデータベースが適切な場合があります。)
データが比較的単純で、データベースが(通常)データベースの信頼性を必要としない場合は、プログラムの実行中に組み込みのデータ型の1つにデータを格納することはおそらく問題ありません。
ディスクに保存されたデータを人間が読める形式(そして少しの努力で編集可能)にしたい場合はjson
、基本的なPythonオブジェクトが何の努力もせずにシリアル化されるため、JSON(組み込みモジュールがあります)のような形式が適しています。データがそれほど単純でない場合、YAMLは本質的にJSONの拡張バージョンです(PyYAMLは非常に優れています)。同様に、CSVファイル(モジュール)を使用することもできますがcsv
、これはJSONやYAML、または単なるカスタムテキスト形式ほど良くはありません(ただし、エラー処理などを適切に実装するには、かなりの労力が必要です)。
最後に、データにさらに高度なオブジェクト(再帰辞書、複雑なカスタムデータ型など)が含まれている場合は、組み込みのバイナリシリアル化手法(など)のいずれpickle
かshelve
を使用するのが適切かもしれませんが、YAMLはこれらの多く(再帰データを含む)を処理できます構造)。
いくつかの一般的なポイント:
- プレーンテキスト形式は、値を簡単に調整でき、デバッグ/テストが簡単であるため、便利です。
- バイナリ形式は、少し余分な労力をかけずに値を調整できないことを意味し(ただし、調整できないとは言えません)、ファイルサイズが小さい(おそらく関連性がない)ため、優れています。