JSONファイルから特定のフィールドを抽出する方法

JSONPath かコードを書いてパースすることで、指定したフィールドを抽出すればよい。

JSONPathを使用して指定のフィールドを抽出する手順:

  1. JSONPathライブラリ(例:jsonpath-ng、jsonpath_rw)をインポートします。
  2. JSONファイルをパースしてJSONオブジェクトに変換する。
  3. JSONPath式を使用して指定のフィールドを抽出します。
  4. アーカイブの種類によっては抽出した結果の取得方法が異なります。

たとえば、以下の JSON ファイルの内容があると想定します:

{
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York"
},
"phoneNumbers": [
{
"type": "home",
"number": "555-1234"
},
{
"type": "work",
"number": "555-5678"
}
]
}

jsonpath_ngライブラリを使用すると、「name」と「phoneNumbers」フィールドの値を取得できます。

import json
from jsonpath_ng import parse
# 解析 JSON 文件并转换为 JSON 对象
with open('data.json') as json_file:
data = json.load(json_file)
# 提取 "name" 字段的值
name_expr = parse("$.name")
name_result = [match.value for match in name_expr.find(data)]
print(name_result)  # 输出: ['John']
# 提取 "phoneNumbers" 字段的值
phone_expr = parse("$.phoneNumbers[*].number")
phone_result = [match.value for match in phone_expr.find(data)]
print(phone_result)  # 输出: ['555-1234', '555-5678']

Python の JSON モジュールなどの JSON 解析ライブラリを使って JSON ファイルを解析し、ディクショナリインデックスで特定のフィールドの値を取得することもできます。

たとえば、以下の JSON ファイルの内容があるものとします。

{
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York"
},
"phoneNumbers": [
{
"type": "home",
"number": "555-1234"
},
{
"type": "work",
"number": "555-5678"
}
]
}

Python の json モジュールを使用して「name」と「phoneNumbers」フィールドの値を取り出す

import json
# 解析 JSON 文件并转换为 JSON 对象
with open('data.json') as json_file:
data = json.load(json_file)
# 提取 "name" 字段的值
name_result = data["name"]
print(name_result)  # 输出: 'John'
# 提取 "phoneNumbers" 字段的值
phone_result = [entry["number"] for entry in data["phoneNumbers"]]
print(phone_result)  # 输出: ['555-1234', '555-5678']

シナリオと要件に基づいて、JSONPathを使用するかコードを記述して解析するかを選択できます。

bannerAds