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

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输出,显示字段名,然后执行就可以了。
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【介绍下Pandas,什么是Pandas?】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

【验收支撑文档】软件验收计划书

软件系统验收计划书是确保新开发的软件系统符合预期要求并稳定运行的关键步骤。本计划书概述了验收过程的主要环节,包括系统功能的详细测试、性能评估、用户接受度测试以及文档完整性的核查。验收团队将依据项目需求规格说明书和合同要求,对系统进行全面…

Java课程设计:基于Java+Swing+MySQL的图书管理系统(内附源码)

文章目录 一、项目介绍二、项目展示三、源码展示四、源码获取 一、项目介绍 图书管理系统是一个常见的软件项目,广泛应用于图书馆、学校、企业等需要管理图书资源的场景。该系统通常涵盖图书信息录入、查询、借阅、归还等核心功能,是实现图书资源高效管理的重要工具。 随着信…

linux系统安装anaconda,并通过java程序调用python程序

虚拟环境准备 首先准备一块空的分区,安装anaconda至少要20g以上才能执行简单程序,这里准备20G的磁盘空间 创建分区,执行以下步骤,之后执行reboot重启 fdisk /dev/sda p n 回车 回车 w查看当前系统创建的分区,我这里是名为sda3的…

JWT攻击手册(非常详细)零基础入门到精通,收藏这一篇就够了

JSON Web Token(JWT)对于渗透测试人员而言可能是一种非常吸引人的攻击途径,因为它们不仅是让你获得无限访问权限的关键,而且还被视为隐藏了通往以下特权的途径:特权升级,信息泄露,SQLi&#xff…

Pytorch 实现简单的 线性回归 算法

Pytorch实现简单的线性回归算法 简单 tensor的运算 Pytorch涉及的基本数据类型是tensor(张量)和Autograd(自动微分变量) import torch x torch.rand(5, 3) #产生一个5*3的tensor,在 [0,1) 之间随机取值 y torch.o…

按位拆分+前缀和,CF 1879D - Sum of XOR Functions

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1879D - Sum of XOR Functions 二、解题报告 1、思路分析 朴素暴力O(N^2),考虑优化 由于要求的是异或值乘长度,那么我们可以按位考虑每一位异或值的贡献 我们枚举每一位 每次遍历…

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第六周) - 预训练模型

预训练模型 1. 预训练模型介绍 1.1. ELMo1.2. GPT1.3. BERT 2. Seq2Seq 2.1. T52.2. BART 3. Tokenization 1. 预训练模型介绍 在预训练语言模型出现之前,统计语言模型(如N-gram模型)是主流方法。这些模型利用统计方法来预测文本中的下一个…

JVM 常量池汇总

Tips JVM常量池分为静态常量池和运行时常量池,因为Jdk1.7后字符串常量池从运行时常量池存储位置剥离,故很多博客也是区分开来,存储位置和内容注意区别! 字符串常量池底层是由C实现,是一个类似于HashTable的数据结构&am…

【Linux】运维小脚本:登录即自动显示系统信息

作为Linux运维工程师,我们经常需要快速掌握系统的状态,包括内存使用、CPU负载等关键信息。手动检查这些信息不仅繁琐,而且效率低下。今天,我要给大家介绍一个实用的小技巧,通过一个简单的脚本,每次登录Linu…

基于振弦采集仪的高层建筑结构安全监测技术研究

基于振弦采集仪的高层建筑结构安全监测技术研究 高层建筑的结构安全监测一直是建筑工程领域的重要课题,振弦采集仪作为一种新兴的监测技术,为解决这一问题提供了有力的工具。本文将从振弦采集仪的原理、应用场景以及优势等方面探讨其在高层建筑结构安全…

Windows 如何查看内核数量?这三种方法都可以查看

任务管理器查看 第一种方法是利用任务管理器来查看 CPU 的内核数量,我们可以使用搜索栏输入任务管理器直接打开,或者在使用快捷键“WinX”打开选项框,选择任务管理器。 然后点击性能模块。 在性能界面,我们点击 CPU 模块&#xf…

在ComfyUI中用LoRA换脸,实现超高相似度

准备工作 首先,确保您拥有一个已经训练好的LoRA。如果你不知道如何训练LoRA,可以看看我之前的文章。 这个LoRA可以仅使用被训练人物的大头照。我们的目标是使用LoRA生成与被训练人物高度相似的脸部,然后将其换到任何身体上,实现…

mysql中 事务的隔离级别与MVCC

大家好。今天我们来讲一下事务的隔离级别和MVCC。在讲之前,我们先创建一张表,方便我们的讲解: CREATE TABLE hero ( number INT, name VARCHAR(100), country varchar(100), PRIMARY KEY (number) ) EngineInnoDB CHARSETutf8;创建完毕后我…

【FreeRTOS】软件定时器 software timer(上)

我们在手机上添加闹钟时,需要指定时间、指定类型(一次性的,还是周期性的)、指定做什么事;还有 一些过时的、不再使用的闹钟。如下图所示: 使用定时器跟使用手机闹钟是类似的: 指定时间:启动定时器和运行回…

GenAI-Arena:首个多模态生成 AI 排名开放平台

生成式 AI 指的是能够生成新内容(如图像、视频、文本等)的人工智能技术。近年来,生成式 AI 在图像和视频生成领域取得了突破性进展,例如: 艺术创作:生成式 AI 可以根据文本描述生成各种风格的艺术作品&…

10.3 Go 同步与通信

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

爬虫案例:建设库JS逆向

爬虫流程 1. 确定目标网址和所需内容 https://www.jiansheku.com/search/enterprise/ 只是个学习案例,所以目标就有我自己来选择,企业名称,法定代表人,注册资本,成立日期 2. 对目标网站,进行分析 动态…

甲板上的战舰|模拟?|每日一题|chatgpt结合更正

文章目录 我的天免费的4o太好用了我的天免费的4o太好用了我的天免费的4o太好用了题目详情思路:关键:chatGPT配合纠正错误思路正确代码: 我的天免费的4o太好用了 我的天免费的4o太好用了 我的天免费的4o太好用了 重要的事情说三遍 题目详情…

HK1-BOX X3刷UBUNTU 24.04,并开启WIFI

端午刚好有点时间,顺便把改完散热的HK1-BOX刷了个最新OC版的UBUNTU 24,这里记录下操作的步骤: 准备材料 HK1-BOX S905X3:注意X4的不行固件没匹配的。建议先改完散热,不然作为7X24小时的机器长时间高温还是很伤硬件的…