Jsonpath 使用多层?(@.)语法
时间: 2024-03-13 13:48:17 浏览: 72
JAVA解压ZIP多层目录文件(需ant.jar
3星 · 编辑精心推荐
可以使用`@.`符号来在 Jsonpath 中处理多层嵌套的数据。以下是一个示例代码:
```python
import json
from jsonpath_ng import jsonpath, parse
# 示例 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" 的项
expression = parse("$.pets.*.toys[@.name=='frisbee']")
matches = expression.find(json_obj)
for match in matches:
print(match.value)
```
执行以上代码,输出如下结果:
```
{'name': 'frisbee', 'color': 'green'}
```
以上代码使用了`@.`符号来查询 toys 中名称为 "frisbee" 的项,`@.`符号表示在当前层级的所有项中进行查询,而`*`表示在下一层级的所有项中进行查询。你可以根据需求修改代码来适应不同的 Jsonpath 查询需求。
阅读全文