Python 多层级Json取当前元素的上一层级元素
时间: 2024-03-22 21:40:58 浏览: 169
python之生成多层json结构的实现
在 JSON 中,如果你想要获取一个多层级元素的上一层级元素,可以通过递归遍历 JSON 数据来查找。
下面是一个简单的例子,假设有一个 JSON 数据如下:
```json
{
"name": "Alice",
"age": 30,
"address": {
"city": "New York",
"state": "NY",
"zip": "10001",
"location": {
"lat": 40.7128,
"lng": -74.0060
}
}
}
```
如果你想要获取 `lat` 元素的上一层级元素 `location` 的上一层级元素 `address` 的值,可以使用如下代码:
```python
import json
# JSON 数据
data = '{"name": "Alice", "age": 30, "address": {"city": "New York", "state": "NY", "zip": "10001", "location": {"lat": 40.7128, "lng": -74.0060}}}'
# 递归遍历 Python 对象,查找匹配条件的元素
def find_parent(obj, target_key, parent=None):
for key, value in obj.items():
if isinstance(value, dict):
if target_key in value:
return parent
else:
result = find_parent(value, target_key, key)
if result is not None:
return result
return None
# 将 JSON 数据转换为 Python 对象
obj = json.loads(data)
# 查找匹配条件的元素
parent = find_parent(obj, "lat")
# 打印结果
if parent is not None:
print(parent, ":", obj[parent])
```
输出结果将是:
```
address : {'city': 'New York', 'state': 'NY', 'zip': '10001', 'location': {'lat': 40.7128, 'lng': -74.006}}
```
在这个例子中,我们使用递归函数 `find_parent` 遍历了 JSON 数据的每个元素,如果当前元素的值是一个字典并且包含目标元素,则返回上一层级元素的键,否则继续递归查找。最后,我们打印出找到的上一层级元素和它的值。
阅读全文