黑马程序员技术交流社区
标题:
【上海校区】使用JsonPath解析json数据
[打印本页]
作者:
不二晨
时间:
2019-3-8 09:56
标题:
【上海校区】使用JsonPath解析json数据
JsonPath介绍
JsonPath是从JSON文档中抽取指定的信息的工具。提供多种语言实现版本,包括JavaScript,Python,PHP,java。
JsonPath对于JSON,就好比xpath对于XML。
JsonPath下载地址:
https://pypi.python.org/pypi/jsonpath
JsonPath安装:
pip install jsonpath
JsonPath语法与XPath语法对比
Json结构清晰,可读性高,复杂度低,非常容易匹配,下表中对应了XPath的用法。
jsonpath.png
(39.82 KB, 下载次数: 1)
下载附件
2019-3-8 09:56 上传
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}}}
# 获取根节点下的任意name属性的值
print(jsonpath(dict, '$..name')) # 输出 ['bob', 'amy', 'pery', 'anne']
# 获取teachers节点
print(jsonpath(dict, '$.class.teachers')) # 输出 [{'teacher_id': '1', 'name': 'anne', 'sex': 'female', 'age': 32}]
# 获取第一个students数据
print(jsonpath(dict, '$..students[0]')) # 输出 [{'student_id': '1', 'name': 'bob', 'sex': 'male', 'age': 6}]
# 获取students的第一条数据的name属性
print(jsonpath(dict, '$..students[0].name')) # 输出 ['bob']
# 获取students的0,1条数据
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的最后一条数据
print(jsonpath(dict, '$..students[-1:]')) # 输出 [{'student_id': '3', 'name': 'pery', 'sex': 'male', 'age': 5}]
---------------------
【转载,仅作分享,侵删】
作者:张行之
来源:CSDN
原文:
https://blog.csdn.net/qq_33689414/article/details/78631003
版权声明:本文为博主原创文章,转载请附上博文链接!
作者:
不二晨
时间:
2019-3-11 15:25
奈斯,感谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2