作者:芬达
关键词:数据清洗、jsonpath
问题:
用户在监听完网页数据之后,往往监听到的数据结果非常繁杂;难以快速定位到需要的数据字段
解法:
通过jsonpath数据清洗的方式,快速获取所需数据
jsonpath: 是一种用于从JSON数据中提取特定数据的查询语言。它是一种轻量级的语法,类似于XPath,可以通过路径表达式来定位JSON对象中的数据。

准备工作:json文档,提取数据
json示例文档:
需要提取的数据:

开始实操
1.安装jsonpath包

2.添加代码模块
import jsonpath f = open(r'[替换成监听到的json文本文件路径]',encoding='UTF-8') book = json.load(f) # 读取json文件后,需要用json.load()将其转化为字典或列表 jsons = "$.content.auth[0].type" print(jsonpath.jsonpath(book,jsons)) jsons = "$.content.auth.[*]" print(jsonpath.jsonpath(book,jsons))
3.运行结果

1、想得到content下的auth下第一项的type下的内容
jsons = "$.content.auth[0].type" print(jsonpath.jsonpath(books,jsons))
2、想得到content下的auth下的所有内容
jsons = "$.content.auth.[*]" print(jsonpath.jsonpath(books,jsons))
3、输出content节点下的allAuthIndex下所有带gridData的对象
jsons = "$.content.allAuthIndex[?(@.gridData)]" print(jsonpath.jsonpath(books,jsons))
4、输出content节点下auth下所有messageTemplate=null的对象
jsons = "$.content.auth[?(@.messageTemplate==null)]" print(jsonpath.jsonpath(books,jsons))