2

私は現在、辞書の非常に大きな JSON 辞書を作成するプロジェクトに取り組んでいます。このオブジェクト全体を一度にメモリに保持するのは面倒です。辞書キーに何が入るかをキーごとに計算しているので、各キーをファイルに書き込む方法を望んでいました。最終的にjsonを次のようにダンプしますその値が計算されるとすぐに。このようにして、一度に複数のキーと値のペアをメモリに保持する必要がなくなります。これはすばらしいことです。

オブジェクトの形式は次のとおりです。

{key: {key: val, key: val, key:val, etc...},
 key: {key: val, key: val, key:val, etc...},
 key: {key: val, key: val, key:val, etc...},
 etc...
}

印刷する各 JSON サブディクショナリの前後にコンマを付けて、JSON で辞書の最初と最後を手動で印刷するだけであれば、これを行うのはそれほど難しくありませんが、Python の JSON ライブラリの 1 つを使用してこれを行う方法が必要であると考えています。それはずっときれいです。アイデア?

4

1 に答える 1

0

Python の組み込みjsonモジュールはオブジェクト全体をロードしてダンプするため、それを直接実行することはできません。イベント駆動型 ( 「SAX スタイル」 ) の JSON パーサーが利用可能です。たとえば、 Python バインディングを持つyajlがあります。

個人的には、必要がない限りサードパーティの依存関係を使用しないようにしています。そのため、最初/最後/キーを手動で出力し、組み込みの JSON モジュールを使用することになるでしょう。または、全体をメモリに保管してください。実際にどれくらいのメモリが必要ですか?プロファイリングを行って問題があることがわかった場合にのみ、最適化することを忘れないでください。:-)

于 2012-05-15T15:58:32.193 に答える