1. ホーム
  2. python

[解決済み] 大きなJSONファイルを読み込むためのメモリ効率的で高速な方法はありますか?

2023-06-26 03:09:20

質問

500MBのjsonファイルがあります。 もし私が"trivial"を使用した場合。 json.load() を使用してその内容を一度に読み込むと、多くのメモリを消費します。

ファイルを部分的に読み込む方法はありますか?テキストで行区切りのファイルだったら、行を反復して読むことができると思うのですが。それに類するものを探しています。

どのように解決するのですか?

アップデート

他の回答を参照してアドバイスを受けてください。

2010年の回答(現在は古くなっています

短い答え:いいえ。

jsonファイルを適切に分割するには、jsonオブジェクトグラフの深い知識が必要です。

しかし、もしこの知識があれば、jsonファイルをラップし、適切なチャンクを吐き出すファイルのようなオブジェクトを実装することができます。

たとえば、jsonファイルがオブジェクトの単一の配列であることを知っている場合、jsonファイルをラップして配列のチャンクを返すジェネレータを作成することができます。

jsonファイルのチャンキングを正しくするために、いくつかの文字列コンテンツのパースを行う必要があります。

何があなたのjsonコンテンツを生成しているのかわかりません。可能であれば、1つの巨大なファイルではなく、いくつかの管理しやすいファイルを生成することを検討します。