Jsonpath多层嵌套@
时间: 2023-07-06 14:41:04 浏览: 221
可以使用递归来处理多层嵌套的Jsonpath。以下是一个示例代码:
```python
import json
def find_key(json_obj, key):
results = []
if isinstance(json_obj, dict):
for k, v in json_obj.items():
if k == key:
results.append(v)
elif isinstance(v, (dict, list)):
results += find_key(v, key)
elif isinstance(json_obj, list):
for item in json_obj:
results += find_key(item, key)
return results
# 示例 JSON 数据
json_str = '''
{
"name": "John",
"age": 30,
"pets": [
{
"name": "Fluffy",
"type": "cat",
"toys": [
{
"name": "ball",
"color": "red"
},
{
"name": "mouse",
"color": "grey"
}
]
},
{
"name": "Fido",
"type": "dog",
"toys": [
{
"name": "bone",
"color": "white"
},
{
"name": "frisbee",
"color": "green"
}
]
}
]
}
'''
# 解析 JSON
json_obj = json.loads(json_str)
# 查询 toys 名称为 "frisbee" 的项
results = find_key(json_obj, "name")
print(results)
```
执行以上代码,输出如下结果:
```
['John', 'Fluffy', 'ball', 'mouse', 'Fido', 'bone', 'frisbee']
```
以上代码使用递归的方式处理多层嵌套的 JSON 数据,查询 toys 名称为 "frisbee" 的项,结果包括了所有名称为 "name" 的项的值。你可以根据需求修改代码来适应不同的 Jsonpath 查询需求。
阅读全文