python读取多层json中指定值

2023-02-27 00:00:00 读取 多层 中指

在 Python 中读取多层嵌套的 JSON 中指定值的方法是使用字典的索引方式。具体地,可以使用递归函数来遍历多层嵌套的 JSON 对象,找到指定键对应的值。

下面是一个示例,假设有一个包含多层嵌套的 JSON 对象,其中包含了一个嵌套字典和一个嵌套列表。我们需要从这个 JSON 对象中获取某个指定键的值。

import json

def get_value(json_obj, key):
    """
    递归函数,从多层嵌套的 JSON 对象中获取指定键的值
    """
    if isinstance(json_obj, dict):
        for k, v in json_obj.items():
            if k == key:
                return v
            else:
                value = get_value(v, key)
                if value is not None:
                    return value
    elif isinstance(json_obj, list):
        for item in json_obj:
            value = get_value(item, key)
            if value is not None:
                return value
    return None

# 读取 JSON 文件并解析成对象
with open('example.json', 'r') as f:
    data = json.load(f)

# 获取指定键的值
value = get_value(data, 'key_name')
print(value)

这个示例定义了一个递归函数 get_value(),用于遍历多层嵌套的 JSON 对象。该函数接受两个参数:JSON 对象和要查找的键。在函数中,我们首先判断当前对象是否为字典,如果是,则遍历该字典,查找是否包含指定键。如果找到了指定键,则返回对应的值。如果没有找到,则递归遍历该字典的值,继续查找指定键。

如果当前对象是列表,则遍历该列表中的所有元素,递归调用 get_value() 函数查找指定键。如果找到了指定键,则返回对应的值。如果没有找到,则返回 None。

最后,我们读取一个 JSON 文件并解析成 JSON 对象,然后调用 get_value() 函数获取指定键的值。注意,如果指定键不存在,则返回 None。

相关文章