効率的でメモリを重視した JSON 読み込み
大きな JSON ファイルを扱う場合、メモリ消費が重大な問題になる可能性があります。標準の json.load() 関数を使用してファイル全体を一度にロードすると、過剰なメモリ使用量が発生する可能性があります。
より効率的なアプローチは、JSON ファイルを段階的に解析し、必要な部分だけをメモリにロードすることです。与えられた時間。これは、テキスト ファイル内の行を反復処理することに似ています。
ijson の紹介
JSON 処理の場合、ijson ライブラリは増分解析を可能にする SAX のようなインターフェイスを提供します。 。 JSON 構造内のさまざまな要素 (配列やマップの開始と終了、キーに関連付けられた値など) に遭遇すると、イベントを発行します。
ijson を使用した大きな JSON ファイルの解析
ijson を使用して大きな JSON ファイルを解析するには、単に json.load() を ijson.parse() イテレータに置き換えます。
import ijson for prefix, event, value in ijson.parse(open(json_file_name)): # Process the event and value according to your needs
プレフィックスはパスのようなものを提供します。 JSON ツリー内の識別子、event はイベントのタイプ (start_map、string など) を示し、value にはイベントに関連付けられた実際の値が含まれます。
ijson の利点
追加のヒント
以上がここでは、さまざまな質問形式を試し、主な利点を強調したいくつかのタイトル オプションを示します。 直接の質問: * メモリの問題を発生させずに、大きな JSON ファイルを効率的にロードするにはどうすればよいですか? * 何の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。