• jsonpath介绍与使用


    一、什么是jsonpath

    用来解析json数据的所使用的。

    二、拓展

    1、python 处理json格式所使用的函数

    (1)json.dumps()

    将字典或者列表转换为json格式的字符串。

    (2)json.loads()

    将json格式字符串转换为python对象

    (3)json.dump()

    将字典或者列表转换为json格式的字符串并且写入到文件中。

    (4)json.load()

    从文件中读取json格式的字符串并且转换为python对象。

    (5)实例

    图片

    2、前端处理json格式的数据

    将json格式字符串转换为js对象,两种方式:

    (1)JSON.parse(“json格式的字符串”)

    (2)eval(‘(’ + json格式字符串 + ‘)’)

    三、jsonpath如何解析json数据

    1、安装jsonpath

    pip3 install jsonpath
    
    • 1

    2、xpath与jsonpath对比
    图片

    注:
    (1) []在xpath表达式总是从前面的路径来操作数组,索引是从1开始。

    (2) 使用JOSNPath的[]操作符操作一个对象或者数组,索引是从0开始。

    3、jsonpath实例

    books.json

    { "store": {
        "book": [ 
          { "category": "文学作品",
            "author": "钱钟书",
            "title": "围城",
            "price": 80.5
          },
          { "category": "历史作品",
            "author": "孔子",
            "title": "春秋",
            "price": 90.9
          },
          { "category": "天文作品",
            "author": "天文",
            "title": "史上最强仙人",
            "isbn": "0-553-21311-3",
            "price": 80.9
          },
          { "category": "fiction",
            "author": "J. R. R. Tolkien",
            "title": "The Lord of the Rings",
            "isbn": "0-395-19395-8",
            "price": 22.99
          }
        ],
        "bicycle": {
          "color": "red",
          "price": 19.95
        }
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    jsonpath_exam.py

    #!/usr/local/bin/python3.7
    
    import json
    import jsonpath
    
    
    # 从文件中读取json格式的字符串并且转换为python对象
    obj = json.load(open('Reptile/books.json', 'r', encoding='utf-8'))
    
    # 获取所有书的作者
    authors = jsonpath.jsonpath(obj, '$.store.book[*].author')
    print(authors)
    
    # 获取所有的作者
    authors = jsonpath.jsonpath(obj, '$..author')
    print(authors)
    
    # store的所有元素。所有的book和bicycle
    store_elements = jsonpath.jsonpath(obj, '$.store.*')
    print(store_elements)
    
    # 获取store里面的所有东西的price
    prices = jsonpath.jsonpath(obj, '$.store.*..price')
    print(prices)
    
    # 获取第三本书
    book3 = jsonpath.jsonpath(obj, '$.store.book[2]')
    print(book3)
    
    # 获取最后一本书
    book_last = jsonpath.jsonpath(obj, '$.store.book[(@.length-1)]')
    print(book_last)
    
    # 获取前面的两本书
    book_1_2 = jsonpath.jsonpath(obj, '$..book[0,1]')
    print(book_1_2)
    
    #  过滤出所有的包含isbn的书。
    isbn = jsonpath.jsonpath(obj, '$..book[?(@.isbn)]')
    print(isbn)
    
    # 过滤出价格低于10的书。
    under10 = jsonpath.jsonpath(obj, '$..book[?(@.price<30)]')
    print(under10)
    
    # 找出所有元素
    all = jsonpath.jsonpath(obj, '$.*')
    print(all)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    资源分享

    下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    selenium进阶设置
    PanTools v1.0.27 多网盘批量管理、遍历分享、转存、重命名、复制...
    c#的反编译工具ISPY和net reflector 使用比较
    MySQL update 是锁行还是锁表?
    String面试总结
    Vue或React项目配置@路径别名及智能提示方案
    解决TP6使用PHPExcel导出excel文件时报错
    语音信号处理中的“窗函数”
    快速解析excel
    进程,线程,并发相关入门
  • 原文地址:https://blog.csdn.net/wx17343624830/article/details/127640484