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)实例

jsonpath介绍与使用_第1张图片

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

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

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

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

三、jsonpath如何解析json数据

1、安装jsonpath

pip3 install jsonpath

2、xpath与jsonpath对比
jsonpath介绍与使用_第2张图片

注:
(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
    }
  }
}

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)

资源分享

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

在这里插入图片描述

在这里插入图片描述

你可能感兴趣的:(程序人生,软件测试,自动化测试,自动化测试,软件测试,程序人生,功能测试,python)