JSONの入れ子構造から値を取得する方法
ネストされたJSONの値を取得するには、再帰的に処理します。次に、JSONから値を再帰的に取得する方法を示すサンプルコードを示します。
def get_value(data, keys):
if len(keys) == 1:
return data.get(keys[0])
else:
key = keys[0]
if key in data:
return get_value(data[key], keys[1:])
else:
return None
# 示例 JSON 数据
data = {
"key1": {
"key2": {
"key3": "value"
}
}
}
# 要获取的键的列表
keys = ["key1", "key2", "key3"]
# 获取值
value = get_value(data, keys)
print(value) # 输出: "value"
上記のサンプルコードで、get_value関数は2つのパラメーターを受け取ります。一つ目は処理対象となるJSONデータのdataで、もう一つは取得するキーのリストkeysです。リストkeysの長さが1の場合、dataから対応する値を直接取得して返します。それ以外の場合、リストから最初のキーkeyを取り出し、それがdataに存在するかどうか確認します。存在する場合、get_value関数を再帰的に呼び出し、data[key]を新しいdataパラメーターとして、keysリストから残りの部分を新しいkeysパラメーターとして渡します。keyがdataに存在しない場合、Noneを返します。最終的に、リストkeysが再帰的に縮小されてキーが1つだけになると、関数は対応する値を返します。
ネストされた階層の深い JSON から特定の値を取得するには、再帰的手法を使うことができます。