使用 Python 的 jsonpath-ng 库可以方便地解决这个问题。该库提供了一种使用类似 XPath 表达式的方式来查询 JSON 数据结构的方法。
首先需要在 Python 中安装 jsonpath-ng 库:
pip install jsonpath-ng
然后,可以在代码中这样使用:
import json
from jsonpath_ng import jsonpath, parse
# 假设有如下的 JSON 数据,需要查找包含 name 属性为 "John" 的对象:
data = '''
{
"students": [
{"name": "Alice", "age": 18},
{"name": "Bob", "age": 20},
{"name": "John", "age": 19},
{"name": "Mary", "age": 19}
]
}
'''
# 将 JSON 数据解析为 Python 对象
data_obj = json.loads(data)
# 构建 jsonpath 对象,指定需要查找的属性和值
jsonpath_expr = parse("$.students[?(@.name=='John')]")
# 对 Python 对象执行查询,返回匹配的结果
matches = jsonpath_expr.find(data_obj)
# 输出找到的结果
for match in matches:
print(match.value)
执行以上代码,输出如下结果:
{'name': 'John', 'age': 19}
以上就是利用 jsonpath-ng 库来找到包含某个属性或值的 JSON 对象的路径的方法。