python实现提取多级json中指定路径的值
时间: 2024-03-03 19:46:49 浏览: 75
可以使用Python内置的json模块来解析JSON数据,并使用递归函数来实现提取多级JSON中指定路径的值。以下是一个示例代码:
```python
import json
def get_value(json_obj, path):
if len(path) == 1:
return json_obj.get(path[0])
else:
return get_value(json_obj.get(path[0], {}), path[1:])
json_str = '{"name": {"first": "John", "last": "Doe"}, "age": 30}'
json_obj = json.loads(json_str)
path1 = ['name', 'first']
path2 = ['name', 'middle']
path3 = ['age']
value1 = get_value(json_obj, path1)
value2 = get_value(json_obj, path2)
value3 = get_value(json_obj, path3)
print(value1) # Output: John
print(value2) # Output: None
print(value3) # Output: 30
```
在上面的示例代码中,我们定义了一个 `get_value` 函数,它接受两个参数: `json_obj` 表示要解析的JSON对象, `path` 表示要提取的路径。如果路径只有一个元素,则直接从JSON对象中获取该元素的值;否则,递归调用 `get_value` 函数,从子对象中提取下一个元素的值。使用示例代码中的路径和JSON对象,我们可以提取出 `"name"` 对象中的 `"first"` 属性和 `"age"` 属性的值,而 `"name"` 对象中不存在 `"middle"` 属性,因此返回值为 `None`。
阅读全文