要实现多层嵌套的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 = https://www.yisu.com/ask/{"key1": { "key2": { "key3": "value" } } } # 要获取的键的列表 keys = ["key1", "key2", "key3"] # 获取值 value = https://www.yisu.com/ask/get_value(data, keys)"value"
在上面的示例代码中,get_value
函数接受两个参数:data
是要处理的JSON数据,keys
是要获取的键的列表。如果 keys
列表的长度为1,则直接从 data
中获取对应的值并返回。否则,提取列表中的第一个键 key
,检查它是否存在于 data
中。如果存在,则递归地调用 get_value
函数,将 data[key]
作为新的 data
参数,并将 keys
列表中的剩余部分作为新的 keys
参数传递。如果 key
不存在于 data
中,则返回 None
。最终,当 keys
列表被递归地缩小到只剩下一个键时,函数会返回对应的值。
通过递归的方式,可以在多层嵌套的JSON中获取特定的值。