python json多層嵌套取值怎么實(shí)現(xiàn)

小億
186
2023-11-16 10:00:26

要實(shí)現(xiàn)多層嵌套的JSON取值,可以使用遞歸的方式來(lái)處理。下面是一個(gè)示例代碼,演示了如何遞歸地從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 數(shù)據(jù)
data = {
    "key1": {
        "key2": {
            "key3": "value"
        }
    }
}

# 要獲取的鍵的列表
keys = ["key1", "key2", "key3"]

# 獲取值
value = get_value(data, keys)
print(value)  # 輸出: "value"

在上面的示例代碼中,get_value 函數(shù)接受兩個(gè)參數(shù):data 是要處理的JSON數(shù)據(jù),keys 是要獲取的鍵的列表。如果 keys 列表的長(zhǎng)度為1,則直接從 data 中獲取對(duì)應(yīng)的值并返回。否則,提取列表中的第一個(gè)鍵 key,檢查它是否存在于 data 中。如果存在,則遞歸地調(diào)用 get_value 函數(shù),將 data[key] 作為新的 data 參數(shù),并將 keys 列表中的剩余部分作為新的 keys 參數(shù)傳遞。如果 key 不存在于 data 中,則返回 None。最終,當(dāng) keys 列表被遞歸地縮小到只剩下一個(gè)鍵時(shí),函數(shù)會(huì)返回對(duì)應(yīng)的值。

通過(guò)遞歸的方式,可以在多層嵌套的JSON中獲取特定的值。

0