ホームページ >バックエンド開発 >Python チュートリアル >単一のファイルから複数の JSON オブジェクトを抽出する方法: Python によるソリューション
単一ファイルから複数の JSON オブジェクトを抽出する
多数の JSON オブジェクトを含む JSON ファイルに遭遇した場合は、次のような包括的なアプローチを持つことが重要です。特定のデータを抽出します。この記事では、このようなファイルから「タイムスタンプ」と「有用性」の値を抽出するためのソリューションについて詳しく説明します。
提供されている JSON ファイル構造は、スタックされた JSON オブジェクトを示しています。目的のデータを解析して取得するには、 json.JSONDecoder.raw_decode 関数の使用を検討してください。この関数を使用すると、メモリの制約を遵守しながら、任意の大きな JSON 文字列をデコードできます。
ただし、Python json モジュールは接頭辞の空白を含む文字列を受け入れないことに注意することが重要です。したがって、正規表現を使用して最初の非空白文字を検索し、これが解析の開始点として機能します。
以下は、この問題に対処する改訂されたソリューションです。
<code class="python">from json import JSONDecoder, JSONDecodeError import re NOT_WHITESPACE = re.compile(r'\S') def decode_stacked(document, pos=0, decoder=JSONDecoder()): while True: match = NOT_WHITESPACE.search(document, pos) if not match: return pos = match.start() try: obj, pos = decoder.raw_decode(document, pos) except JSONDecodeError: # do something sensible if there's some error raise yield obj</code>
改訂されたコード スニペットは、指定されたドキュメント内のスタックされた JSON オブジェクトを効果的に解析し、各オブジェクトを検出したときに返します。このアプローチは、従来の JSON 解析の制限を回避し、大規模で潜在的に複雑な JSON ファイルの処理に適しています。
以上が単一のファイルから複数の JSON オブジェクトを抽出する方法: Python によるソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。