kettle学习(利用jsonPath定位,json文件转换)

news2024/11/19 15:22:49

kettle学习(利用jsonPath定位,json文件转换)

于数据处理的广袤天地间,我们时常需应对各类繁杂状况与各式格式。

Kettle 作为极具威力的数据集成利器,赋予了我们诸多功能与无限可能此次博客里,我们将重点投向 Kettle 的研习,

确切地说,是如何借助 jsonPath 这一强劲的手段来精确锚定和处置 JSON 文件。

借由深入探究 json 文件的转换流程,我们将一道揭开数据处理那神秘的面纱,牢牢把握高效且精准地处理与转换数据的技巧及方法。

让我们开启这趟满含挑战与收获的数据征程,持续提升自身于数据处理领域的能力层级与水准层次。

在这里插入图片描述

一、准备数据

josn文件取自,boss直聘中的城市数据
在这里插入图片描述
获取到该页面的json数据之后,双击进入源代码内,按住crtl+s保存json文件到本地

二、数据加载

  1. 输入JSON input
  2. 加载文件
    在这里插入图片描述
    在这里插入图片描述

三、数据定位

  • JSONPath 是一种用于在 JSON 数据中定位和提取特定元素的查询语言。
  • 它类似于 XPath 对 XML 的作用,可以帮助我们轻松地按照特定的路径表达式从复杂的 JSON 结构中获取所需的数据。以下是 JSONPath 的一些常见语法和示例:
    基本概念:
    什么是 JSONPath:JSONPath 是一种用于在 JSON 数据中定位和提取特定元素的查询语言。
    JSONPath 的作用和重要性:数据提取和过滤、数据导航和遍历、API 集成和数据交互、数据转换和处理。
    JSON 数据结构回顾:
    什么是 JSON:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。
    JSON 的特点:人类可读性高、数据格式简单、可嵌套和可扩展、平台无关性。
    JSON 数据类型:对象(Object)、数组(Array)、字符串(String)、数字(Number)、布尔值(Boolean)、空值(null)。
    JSON 对象和数组:对象是一种无序的键值对集合,每个键值对由一个属性名和对应的值构成。数组是一个有序的值列表,可以包含任意数据类型的元素。
    嵌套 JSON 结构:JSON 允许在对象或数组中嵌套其他 JSON 对象或数组,从而形成复杂的数据结构。
    JSONPath 表达式:
    JSONPath 常见的运算符:$(根元素)、.(子元素)、[](数组索引或键)、*(通配符)。
    JSONPath 常见的函数:length()(数组长度)、max()(最大值)、min()(最小值)、avg()(平均值)
    JSONPath 数据提取案例:

        {
          "商店": {
            "书籍": [
              {
                "分类": "惊悚",
                "作者": "R.L.斯坦",
                "书名": "鸡皮疙瘩",
                "价格": 18.95
              },
              {
                "分类": "冒险",
                "作者": "J.K.罗琳",
                "书名": "哈利波特与火焰杯",
                "书号": "ND-2131-34421",
                "价格": 52.99
              },
              {
                "分类": "科幻",
                "作者": "刘慈欣",
                "书名": "三体",
                "价格": 65.35
              },
              {
                "分类": "科幻",
                "作者": "刘慈欣",
                "书名": "流浪地球",
                "价格": 32.99
              }
            ],
            "自行车": {
              "品牌": "凤凰牌自行车",
              "颜色": "红色",
              "价格": 150.3
            }
          }
        }

测试样例:
$.商店.书籍[0].书名:获取商店中第一本书的书名。
$.商店.书籍[*].作者:获取商店中所有书的作者。
$.商店.自行车.品牌:获取商店中自行车的品牌。

JSONPath 与 XPath 的对比:
JSONPath 和 XPath 都是用于在数据结构中进行查询和导航的路径语言,但它们针对不同的数据格式。

  • 分析本文章中的json
  • 在这里插入图片描述
    我们要获得所有jobname的值的话,
    采用jsonpath:
**$.zpData.jobList..jobName**

在这里插入图片描述
后面实验可知道下面这种方法也可以

**$.zpData.jobList[*].jobName**

不过两种用法在某些情况结果可能不一样

$.zpData.jobList…jobName 和 $.zpData.jobList【*】.jobName 的区别
可能在于它们在解析和获取 JSON 数据中的 jobName 值时的方式略有不同。

  • $.zpData.jobList…jobName 使用了双点号(…)表示递归下降操作符。它会在 zpData.jobList 数组的所有嵌套层级中查找名为 jobName 的属性,并返回所有匹配的结果。
  • $.zpData.jobList【】.jobName 使用了方括号(【】)表示通配符索引。它会在 zpData.jobList 数组的每个元素中查找名为 jobName 的属性,并返回所有匹配的结果。
    总的来说,这两种表达式的主要区别在于它们在处理嵌套数组和对象结构时的方式不同。具体使用哪种方式取决于 JSON 数据的结构和需求。

四、文件输出

  1. 最后拖进excel输出,显示字段名,然后执行就可以了。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1811553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一站到底-Vue移动端从零到一构建高效应用

​🌈个人主页:前端青山 🔥系列专栏:vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:一文精通Vue移动端:从零到一构建高效应用 目录 1、项目创建 2、引入组件库 二、功能实…

上位机图像处理和嵌入式模块部署(f407 mcu内部flash编程)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于f407这样的mcu来说,有的时候我们需要对mcu内部的flash进行编程处理。有两种情况需要对flash进行编程,一种情况是可能一…

深度学习500问——Chapter10:迁移学习(2)

文章目录 11.2 迁移学习的基本思路有哪些 11.2.1 基于样本迁移 11.2.2 基于特征迁移 11.2.3 基于模型迁移 11.2.4 基于关系迁移 11.2 迁移学习的基本思路有哪些 迁移学习的基本方法可以分为四种。这四种基本方法分别是:基于样本的迁移,基于模型的迁移&a…

电子元器件批发的几种模式

电子元器件的批发模式多种多样,以下是几种常见的模式: 传统批发模式:传统的电子元器件批发模式是指厂商或代理商通过与制造商签订合同,大批量购买元器件,并将其以较低的价格批发给零售商或其他中小型企业。这种模式通常…

树-二叉树的最大路径和

一、问题描述 二、解题思路 因为各个节点的值可能为负数,初始化res(最大路径和)的值为最小整数:Integer.MIN_VALUE 我们这里使用深度遍历(递归)的方法,先看某一个子树的情况: 这里有一个技巧,…

【C#】pdf按页分割文件,以及分页合并,效果还不错,你值得拥有

欢迎来到《小5讲堂》 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 背景效果单页分割文件合并多页分割插件说明相关文章 背景 最近遇到一…

STM32Cube系列教程11:STM32 AES加解密模块性能测试

文章目录 本次测试环境本次测试所使用的系统时钟为48MHz本次测试主要测试对大量数据进行加解密所需的时间,本次为不严谨测试,忽略了程序调用耗时,结果仅供参考。 AES算法与数据加解密加密与解密对称加解密AES算法AES-ECBAES-CBC 填充算法PKCS…

ITIL简介重要组成部分

ITIL简介&重要组成部分 ITIL(Information Technology Infrastructure Library)是一个IT服务管理的最佳实践框架,通过服务战略、服务设计、服务过渡、服务运营和持续服务改进五个核心模块,帮助组织优化IT服务流程,…

嘴尚绝卤味:健康美味,引领卤味新风尚

在快节奏的现代生活中,人们对于美食的追求从未停歇。卤味作为中国传统美食的代表之一,以其独特的口感和丰富的营养,深受广大消费者的喜爱。而在众多卤味品牌中,嘴尚绝卤味凭借其健康、美味的特色,成为了市场上的佼佼者…

Pytorch解决 多元回归 问题的算法

Pytorch解决 多元回归 问题的算法 回归是一种基本的统计建模技术,用于建立因变量与一个或多个自变量之间的关系。 我们将使用 PyTorch(一种流行的深度学习框架)来开发和训练线性回归模型。 二元回归的简单示例 训练数据集(可获取&…

分离式光电液位传感器有哪些特点?

分离式光电液位传感器是一种先进的液位检测技术,在科学技术的不断推进下得到了广泛应用。相比传统的液位传感器,分离式光电液位传感器具有许多独特的特点。 传感器采用了先进的光学技术,将传感器装在需要检测液位的位置,并采用了…

非GIS专业,真的不适合WebGIS开发吗?

到底是哪些人在新中地特训营学GIS开发? 很多同学对GIS开发的认知还停留在GIS专业的学生才能学GIS开发,然而,在新中地教育,非GIS专业的学生几乎占一半。 除了GIS专业,还有测绘、遥感等跟GIS差别不大的专业学生选择来学…

面试官:你讲下接口防重放如何处理?

前言 我们的API接口都是提供给第三方服务/客户端调用,所有请求地址以及请求参数都是暴露给用户的。 我们每次请求一个HTTP请求,用户都可以通过F12,或者抓包工具fd看到请求的URL链接,然后copy出来。这样是非常不安全的,有人可能会…

鸿蒙轻内核A核源码分析系列二 数据结构-位图操作

在进一步分析之前,本文我们先来熟悉下OpenHarmony鸿蒙轻内核提供的位操作模块,在互斥锁等模块对位操作有使用。位操作是指对二进制数的bit位进行操作。程序可以设置某一变量为状态字,状态字中的每一bit位(标志位)可以具…

Kubernetes——HPA自动伸缩机制

目录 前言 一、概念 1.定义 2.核心概念 3.工作原理 4.HPA的配置关键参数 5.关键组件 5.1HPA控制器(HPA Controller) 5.2Metrics Server 5.3自定义指标适配器(Custom Metrics Adapter) 5.4Deployment/ReplicaSet 5.5Po…

文件二维码能快速生成吗?多种类型文件生成二维码的方法

现在将文件做成二维码是一种很常用形式,通过二维码来存储多个文件,在手机上扫码查看内容,对于文件的安全性和用户体验都有很好的提升。用户无需下载文件,扫码就可以快速在线阅读或者下载文件内容,有利于文件的快速分享…

2024年智能制造行业CRM研究(附需求清单、市场格局、选型建议)

在国家大力鼓励智能制造行业与数字化转型这个大背景下,我们选择了2024年智能制造行业数字化的几个关键趋势做深入解读,并对智能制造行业核心的数字化系统CRM进行了全面评估与排名。本文不仅提供了详尽的需求清单,帮助企业明确自身对CRM系统的…

不定时更新 解决无法访问GitHub github.com 打不开 访问加速

1 修改hosts Windows 10为例,‪文件C:\Windows\System32\drivers\etc\hosts 管理员打开记事本来修改 文件-打开-“C:\Windows\System32\drivers\etc\hosts” 20.205.243.168 api.github.com 185.199.108.154 github.githubassets.com 185.199.108.133 raw.githubusercontent.…

1.ei论文会被scopus检索吗文被其检索吗?

ei论文会被scopus检索吗 scopus数据库能检索的专业范围是比较广泛的,涵盖了医学,地球环境科学,化学,数学,工程学,物理,生物科学等领域,也收录了很多会议论文,那么ei论文…

JwtAccessConverterJwtTokenStorejdbc建表结构

文章目录 JWT实现MacTestMacSigner Rsa生成jks证书需要先安装opensslkeytool生成jks (Java Key Store) 文件测试密钥 JwtTokenStoreInMemoryTokenStore&RedisTokenStore&JdbcTokenStore&JwtTokenStore图解JwtTokenStore详解 jdbc实现表结构说明1oauth_client_detai…