ホームページ >バックエンド開発 >Python チュートリアル >JSON 処理に Python 正規表現を使用する方法
日々のプログラミング作業では、JSON データを処理して情報を抽出する必要がある場合があります。正規表現の強力な機能は、この作業を迅速かつ効率的に完了するのに役立ちます。この記事では、Python 正規表現を使用して JSON 処理を行う方法を紹介します。
JSON は、ネットワーク送信とデータ ストレージに一般的に使用される軽量のデータ交換形式です。 Pythonではjsonライブラリを利用してJSONデータを解析することができますが、場合によってはJSONデータに何らかの加工や抽出を行う必要があり、その際に正規表現がその役割を果たします。
まず、JSON データの基本構造を見てみましょう。 JSON データは通常、キーと値のペアで構成されます。キーと値はコロン「:」で区切られ、各キーと値のペアはカンマ「,」で区切られ、最も外側の層は通常中括弧「{}」で囲まれます。 。例:
{ "name": "John", "age": 30, "city": "New York" }
次に、Python 正規表現を使用してこの JSON データを抽出する方法を見てみましょう。「名前」フィールドと「年齢」フィールドを抽出する必要があると仮定すると、次の正規表現を使用できます。 :
"name":s*"([^"]+)",s*"age":s*(d+)
この正規表現を分析します:
Through」を除く任意の文字に一致します。上記の正規表現を使用すると、「名前」フィールドに対応する値と「年齢」フィールドに対応する値を抽出できます。Python コードを使用して実装:
import re s = '{"name": "John", "age": 30, "city": "New York"}' pattern = re.compile(r'"name":s*"([^"]+)",s*"age":s*(d+)') match = pattern.search(s) if match: name = match.group(1) age = match.group(2) print(name, age)
出力:
John 30
Nextでは、Python 正規表現を使用して JSON データを抽出する方法のアプリケーション シナリオをさらに見てみましょう。
場合によっては、必要なのは次のとおりです。特定のフィールドの値を抽出するには、次の正規表現を使用できます:
"field_name":s*"([^"]+)"
たとえば、上記の JSON データの「city」フィールドに対応する値を抽出する必要がある場合は、次のようにします。次の正規表現を使用します: :
"city":s*"([^"]+)"
Python コード実装:
import re s = '{"name": "John", "age": 30, "city": "New York"}' pattern = re.compile(r'"city":s*"([^"]+)",') match = pattern.search(s) if match: city = match.group(1) print(city)
出力:
New York
JSON データでは、配列型要素の値を抽出する必要がある場合、次の正規表現を使用できます。
"array_field":s*[s*([sS]*?)s*]
たとえば、「」に対応する値のすべての要素を抽出する必要があります。次の JSON データの「pets」フィールド:
{ "name": "John", "age": 30, "pets": [ { "name": "dog", "age": 3 }, { "name": "cat", "age": 2 } ] }
次のように正規表現を使用できます:
"pets":s*[s*([sS]*?)s*]
Python コード実装:
import re s = '{"name": "John", "age": 30, "pets": [{"name": "dog", "age": 3},{"name": "cat", "age": 2}]}' pattern = re.compile(r'"pets":s*[s*([sS]*?)s*]') match = pattern.search(s) if match: pets = match.group(1) print(pets)
出力:
{"name": "dog", "age": 3},{"name": "cat", "age": 2}
複数層のネストされた要素内の特定の値を抽出する必要がある場合は、次の正規表現を使用できます:
"object1":s*{s*[sS]*?"object2":s*{s*[sS]*?"field_name":s*"([^"]+)"
たとえば、次の JSON データに対応する「pets」フィールドを抽出する必要があります。値の 2 番目の要素の「age」フィールドに対応する値:
{ "name": "John", "age": 30, "pets": [ { "name": "dog", "age": 3 }, { "name": "cat", "age": 2 } ] }
次のように正規表現を使用できます。 :
"pets":s*[s*[sS]*?"age":s*(d+)[sS]*?}
Python コードの実装:
import re s = '{"name": "John", "age": 30, "pets": [{"name": "dog", "age": 3},{"name": "cat", "age": 2}]}' pattern = re.compile(r'"pets":s*[s*[sS]*?"age":s*(d+)[sS]*?}') match = pattern.search(s) if match: age = match.group(1) print(age)
出力 :
2
概要:
JSON 処理に正規表現を使用すると、JSON データをより柔軟に抽出して処理できます。これは、JSON データのフィルタリング、フィルタリング、変換などが必要な特定の状況で役立ちます。操作のアプリケーション シナリオでは非常に重要です。ただし、JSON データを処理する場合、正規表現は使用できない場合があることに注意してください。より複雑な状況に適しており、実際の状況に応じて柔軟に選択する必要があります。
以上がJSON 処理に Python 正規表現を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。