ホームページ >バックエンド開発 >Python チュートリアル >単一のファイルから複数の JSON オブジェクトを抽出する方法: Python によるソリューション

単一のファイルから複数の JSON オブジェクトを抽出する方法: Python によるソリューション

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-29 18:20:02801ブラウズ

How to Extract Multiple JSON Objects from a Single File: A Pythonic Solution

単一ファイルから複数の 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。