python-jsonpath的简单使用

秒速五厘米 2022-02-03 05:09 326阅读 0赞

使用jsonpath提取json数据指定参数的值,json文件如下所示

  1. {
  2. "name": "atool",
  3. "url": "https://atool.vip/",
  4. "author": [
  5. {
  6. "id": "hustcc",
  7. "age": 24,
  8. "developer": true
  9. },
  10. {
  11. "id": "wzq",
  12. "age": 23,
  13. "developer": true
  14. },
  15. {
  16. "id": "dou",
  17. "age": 23,
  18. "developer": true
  19. }
  20. ],
  21. "tags": [
  22. "在线工具",
  23. "online",
  24. "free",
  25. "javascript"
  26. ],
  27. "describe": "网站前身为 atool.org,重构 ui 而来!"
  28. }

代码如下所示

  1. #!usr/bin/env python
  2. #-*- coding:utf-8 -*-
  3. """
  4. @author:doulihang
  5. @file: json_path_test.py
  6. @time: 2019/05/08
  7. """
  8. import json
  9. import jsonpath
  10. with open("data.json", 'r') as load_f:
  11. # 将已编码的 JSON 字符串解码为Python对象
  12. load_dict = json.load(load_f)
  13. """使用jsonpath进行匹配"""
  14. #获取根节点下所有name的值
  15. a = jsonpath.jsonpath(load_dict,expr="$.name")
  16. print(a)
  17. #获取author下第一个字典id的值
  18. b = jsonpath.jsonpath(load_dict,expr="$.author[0].id")
  19. print(b)
  20. #获取最后一个tags值
  21. c = jsonpath.jsonpath(load_dict,expr="$.tags[-1:]")
  22. print(c)
  23. #获取前三个tags值
  24. d = jsonpath.jsonpath(load_dict,expr="$.tags[0:3]")
  25. print(d)
  26. #获取第二个、第四个tags值
  27. e = jsonpath.jsonpath(load_dict,expr="$.tags[1,3]")
  28. print(e)
  29. #获取age等于23的所有id
  30. f = jsonpath.jsonpath(load_dict,expr="$.author[?(@.age== 23)]")
  31. g = jsonpath.jsonpath(f,expr="$..id")
  32. print(f)

发表评论

表情:
评论列表 (有 0 条评论,326人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Gson简单使用

    Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。