NO.007-关于数据清洗——By.杭州组
评论
收藏

NO.007-关于数据清洗——By.杭州组

经验分享
芬达
2023-04-06 09:34·浏览量:980
芬达
官方发布于 2023-04-06 09:31更新于 2023-04-06 09:34980浏览

作者:芬达

关键词:数据清洗、jsonpath


一、问题背景

问题:

用户在监听完网页数据之后,往往监听到的数据结果非常繁杂;难以快速定位到需要的数据字段

解法:

通过jsonpath数据清洗的方式,快速获取所需数据

jsonpath: 是一种用于从JSON数据中提取特定数据的查询语言。它是一种轻量级的语法,类似于XPath,可以通过路径表达式来定位JSON对象中的数据。

二、解决思路

准备工作:json文档,提取数据

json示例文档:

📎json数据.txt

需要提取的数据:

开始实操

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))
收藏1
全部评论1
最新
发布评论
评论