ホームページ  >  記事  >  バックエンド開発  >  単一ファイル内の複数の JSON オブジェクトから特定のデータを抽出するにはどうすればよいですか?

単一ファイル内の複数の JSON オブジェクトから特定のデータを抽出するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-27 16:03:01172ブラウズ

How to Extract Specific Data from Multiple JSON Objects in a Single File?

単一のファイルから複数の JSON オブジェクトにアクセスする

JSON ファイルの操作は、特に、単一のファイル。このようなファイルから特定の情報を抽出するには、カスタマイズされたソリューションが必要です。

このシナリオでは、JSON ファイルには複数の JSON オブジェクトが含まれており、それぞれが特定のイベントの情報を表します。タスクは、各オブジェクトから「タイムスタンプ」フィールドと「有用性」フィールドを抽出し、それらをデータ フレームにフォーマットすることです。

これを実現するには、jsonstream ライブラリを活用することをお勧めします。これは、ファイル全体をメモリにロードすることなく、大きな JSON ファイルを処理するための特殊なアプローチを提供します。このライブラリを使用すると、ファイルから JSON オブジェクトを一度に 1 つずつ繰り返しデコードできます。

JSONstream ライブラリは次のように使用できます。

<code class="python">from jsonstream import json

with open("input.json", "r") as f:
    for obj in json.parse(f):
        # Access and process individual fields from the parsed JSON object
        timestamp = obj["Timestamp"]
        usefulness = obj["Usefulness"]
        # ... (perform any necessary actions with the extracted data)</code>

ファイルに直接アクセスできない場合は、代わりに、または、raw_decode メソッドで JSONDecoder クラスを利用することが効率的な解決策となります。この方法を使用すると、1 回の操作でファイル全体を読み取る必要がなく、大きな JSON 文字列をデコードできます。有効な JSON オブジェクトを繰り返し検索し、最後の解析位置を追跡します。

<code class="python">from json import JSONDecoder

decoder = JSONDecoder()
with open("input.json", "r") as f:
    for line in f:
        try:
            obj, pos = decoder.raw_decode(line, 0)
            timestamp = obj["Timestamp"]
            usefulness = obj["Usefulness"]
            # ... (perform actions with the extracted data)
        except JSONDecodeError:
            # Handle any errors encountered during decoding</code>

JSONstream ライブラリと raw_decode メソッドの両方が、単一のファイルから複数の JSON オブジェクトを抽出する効率的な方法を提供し、作業を容易にします。大規模な JSON データ セットを使用して分析します。

以上が単一ファイル内の複数の JSON オブジェクトから特定のデータを抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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