json python

python json多层嵌套取值怎么实现

小亿
186
2023-11-16 10:00:26
栏目: 编程语言

要实现多层嵌套的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中获取特定的值。

0
看了该问题的人还看了