
jsonpath.png
JsonPath的用法示例:
import json
from jsonpath import jsonpath
if __name__ == '__main__':
dict = {"class": {"students": [{"student_id": "1", "name": "bob", "sex": "male", "age": 6},
{"student_id": "2", "name": "amy", "sex": "female", "age": 6},
{"student_id": "3", "name": "pery", "sex": "male", "age": 5}],
"teachers": {"teacher_id": "1", "name": "anne", "sex": "female", "age": 32}}}
# 獲取根節(jié)點下的任意name屬性的值
print(jsonpath(dict, '$..name')) # 輸出 ['bob', 'amy', 'pery', 'anne']
# 獲取teachers節(jié)點
print(jsonpath(dict, '$.class.teachers')) # 輸出 [{'teacher_id': '1', 'name': 'anne', 'sex': 'female', 'age': 32}]
# 獲取第一個students數(shù)據(jù)
print(jsonpath(dict, '$..students[0]')) # 輸出 [{'student_id': '1', 'name': 'bob', 'sex': 'male', 'age': 6}]
# 獲取students的第一條數(shù)據(jù)的name屬性
print(jsonpath(dict, '$..students[0].name')) # 輸出 ['bob']
# 獲取students的0,1條數(shù)據(jù)
print(jsonpath(dict, '$..students[0,1]')) # 輸出 [{'student_id': '1', 'name': 'bob', 'sex': 'male', 'age': 6}, {'student_id': '2', 'name': 'amy', 'sex': 'female', 'age': 6}]
print(jsonpath(dict, '$..students[:2]')) # 輸出 [{'student_id': '1', 'name': 'bob', 'sex': 'male', 'age': 6}, {'student_id': '2', 'name': 'amy', 'sex': 'female', 'age': 6}]
# 獲取students的最后一條數(shù)據(jù)
print(jsonpath(dict, '$..students[-1:]')) # 輸出 [{'student_id': '3', 'name': 'pery', 'sex': 'male', 'age': 5}]