jsonpath介绍与使用

r囧r小猫 2023-09-26 16:09 59阅读 0赞

一、什么是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

  1. pip3 install jsonpath

2、xpath与jsonpath对比
图片

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

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

3、jsonpath实例

books.json

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

jsonpath_exam.py

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

资源分享

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

在这里插入图片描述

在这里插入图片描述

发表评论

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

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

相关阅读

    相关 JsonPath 运算符使用

    背景 因为之前用到Jmeter的Json 提取器涉及到JsonPath的使用,因此查找了一些文章,将里面的精华部分运算符的使用提取出来记录以下,方便自己以后使用。 J

    相关 Jayway JsonPath介绍

    XML的一个经常强调的优点是可以使用大量工具来分析,转换和有选择地从XML文档中提取数据,[XPath][]是这些功能强大的工具之一。jsonPath类似Xpath,可以在js