要實現多層嵌套的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
函數接受兩個參數:data
是要處理的JSON數據,keys
是要獲取的鍵的列表。如果 keys
列表的長度為1,則直接從 data
中獲取對應的值并返回。否則,提取列表中的第一個鍵 key
,檢查它是否存在于 data
中。如果存在,則遞歸地調用 get_value
函數,將 data[key]
作為新的 data
參數,并將 keys
列表中的剩余部分作為新的 keys
參數傳遞。如果 key
不存在于 data
中,則返回 None
。最終,當 keys
列表被遞歸地縮小到只剩下一個鍵時,函數會返回對應的值。
通過遞歸的方式,可以在多層嵌套的JSON中獲取特定的值。