当前位置: 首页 > news >正文

x-cmd pkg | dasel - JSON、YAML、TOML、XML、CSV 数据的查询和修改工具

目录

    • 简介
    • 首次用户快速实验指南
    • 基本功能
    • 性能特点
    • 竞品
    • 进一步探索

简介

dasel,是数据(data)和 选择器(selector)的简写,该工具使用选择器查询和修改数据结构。

  1. 支持 JSON,YAML,TOML,XML 和 CSV 五种常用的数据格式作为输入和输出格式。
  2. 实现常用数据格式(JSON, YAML, TOML, XML, CSV)之间的转换。
  3. 单执行文件,不需要依赖第三方库。
  4. 启动速度更快,在小数据比 jq/yq 耗时更短,效率更高。

首次用户快速实验指南

  1. 使用 x dasel 即可自动下载并使用

    • 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd 官网
  2. x-cmd 提供1分钟教程,其中包含了 dasel 命令常用功能的 demo 示例,可以帮你快速上手 dasel 。

  3. 使用案例:

    dasel-1min-cn

    # 查询 ascii 码表中的首个 ASCII 码的 "Description" 字段的值
    x ascii --json | x dasel -r json '[0].Description'# 使用 all() 选择器和 key() 方法获取 JSON 数据中每个对象的 key
    x ascii --json | x dasel -r json 'all().key()'# 修改 ascii 码表中首个 ASCII 码 "Description" 字段的值为 "Empty"
    x ascii --yml | x dasel put -r yaml --selector '[0].Description' --value 'Empty'# 读取 CSV 格式的数据并将其转为 JSON 格式
    x ascii --csv | x dasel -r csv -w json
    

基本功能

当前, dasel 提供了:

  1. 三类子命令:
    1. select
    2. put
    3. delete
  2. 超过20种选择器

性能特点

  1. dasel 并没有采用流式处理,在处理前,当前将整个数据都加载到内存中,因此,如果用户处理较大的数据时,dasel 可能会要求与数据大小相当(甚至更多)的内存。
  2. dasel 启动时间比 jq/yq 更优,因此在小数据处理时,dasel 的效率更高。官网提供了一份测试报告。
  3. 综上所述,dasel 在效率上能够足以应对手动维护的配置文件(例如 Kuberneter 的 yml)。加上其简单易用,DSL 和参数设计的可读性强,便于维护。如果你需要对配置文件进行增删改查,dasel 是一个不错的选择。

竞品

  1. 如果你需要更灵活的更强大(但学习成本更高)的控制,或者你处理数据很大,需要流式处理,有如下选择:
    1. jq : 输入数据为 JSON,输出数据可以是 JSON,CSV和文本
    2. yq : 可以同时处理 JSON,YML,CSV,XML;
    3. xsv : 采用 rust 编写的高效 CSV/TSV 的处理工具,专门为大数据而生。
  2. 如果你想使用通用的 SQL 来查询和操作 JSON 和 CSV,那么 trdsql 值得一看。

进一步探索

  • dasel 官方提供了详细的 Gitbook 文档,该文档对 dasel 的 DSL 进行了详尽的介绍。
  • dasel 的 GitHub 地址

相关文章:

x-cmd pkg | dasel - JSON、YAML、TOML、XML、CSV 数据的查询和修改工具

目录 简介首次用户快速实验指南基本功能性能特点竞品进一步探索 简介 dasel,是数据(data)和 选择器(selector)的简写,该工具使用选择器查询和修改数据结构。 支持 JSON,YAML,TOML&…...

Oracle 19c RAC集群管理 ---------关键参数以及常用命令

Oracle 19c RAC集群管理 ---------关键参数 Oracle 19C RAC 参数最佳实践 --开启强制归档 ALTER DATABASE FORCE LOGGING; --设置 30分钟 强制归档 ALTER SYSTEM SET ARCHIVE_LAG_TARGET1800 SCOPEBOTH SID*; --设置期望undo保持时间3h ALTER SYSTEM SET UNDO_RETENTION21600…...

时限挑战——深度解析Pytest插件 pytest-timeout

在软件开发中,测试用例的执行时间通常是一个关键考虑因素。Pytest插件 pytest-timeout 提供了一个强大的插件,允许你设置测试用例的超时时间。本文将深入介绍 pytest-timeout 插件的基本用法和实际案例,助你精确掌控测试用例的执行时限。 什么…...

Java入门篇:打造你的Java开发环境——从零开始配置IDEA与Eclipse

引言 “工欲善其事,必先利其器” 作为每一位Java初学者的必经之路,搭建合适的开发环境是至关重要的第一步。本篇将详细指导你如何安装并配置两大主流Java开发工具——IntelliJ IDEA和Eclipse,助你在编程之旅上迈出坚实的第一步。 一、Java开发环境准备 1. 下载并安装Java D…...

文本批量处理大师:简化文本处理,释放无限生产力!

在数字化时代,我们每天都要处理大量的文本数据,无论是办公文档、网页内容还是社交媒体帖子。然而,面对海量的信息,传统的一键式操作已经无法满足我们的需求。我们需要一个更高效、更智能的工具来提升我们的工作效率。今天&#xf…...

Go 方法

第 1 章 方法 Go 语言也支持面向对象的思想;所谓面向对象编程:1对象就是简单的一个值或者变量,并且拥有其方法2方法是某种特定类型的函数3 面向对象编程就是使用方法来描述每个数据结构的属性和操作; 使用者不需要了解对象本身的…...

深度学习与大数据在自然语言处理中的应用与进展

引言 在当今社会,深度学习和大数据技术的快速发展为自然语言处理(NLP)领域带来了显著的进步。这种技术能够使计算机更好地理解和生成人类语言,从而推动了搜索引擎、语音助手、机器翻译等领域的创新和改进。 NLP的发展与技术进步…...

GPT4+Python近红外光谱数据分析及机器学习与深度学习建模

详情点击链接:GPT4Python近红外光谱数据分析及机器学习与深度学习建模 第一:GPT4 1、ChatGPT(GPT-1、GPT-2、GPT-3、GPT-3.5、GPT-4模型的演变) 2、ChatGPT对话初体验 3、GPT-4与GPT-3.5的区别,以及与国内大语言模…...

Java项目:12 Springboot的垃圾回收管理系统

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 1.介绍 垃圾分类查询管理系统,对不懂的垃圾进行查询进行分类并可以预约上门回收垃圾。 让用户自己分类垃圾, 按国家标准自己分类…...

HarmonyOS自定义弹出对话框CustomDialog并传递变量

HarmonyOS定义了一系列弹窗反馈类的组件​ 和前端开发框架VUE3配套生态库element plus中的提供各种组件相比,还是要少一些。可能是手机端操作和PC端操作的差异导致的​ 如果内置的弹窗不满足要求,可以基于CustomDialog自定义出各种个性化的反馈组件。 首先新建一个ets文件,…...

React16源码: React中的renderRoot的错误处理的源码实现

renderRoot的错误处理 1 )概述 在 completeWork这个方法之后, 再次回到 renderRoot 里面在 renderRoot 里面执行了 workLoop, 之后,对 workLoop 使用了try catch如果在里面有任何一个节点在更新的过程当中 throw Error 都会被catch到catch到之后就是错误…...

强化学习:MuJoCo机器人强化学习仿真入门(1)

声明:我们跳过mujoco环境的搭建,搭建环境不难,可自行百度 下面开始进入正题(需要有一定的python基础与xml基础): 下面进入到建立机器人模型的部分: 需要先介绍URDF模型文件和导出MJCF格式 介绍完…...

8.Gateway服务网关

3.Gateway服务网关 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式…...

JVM篇----第四篇

系列文章目录 文章目录 系列文章目录前言一、虚拟机栈(线程私有)二、本地方法区(线程私有)三、你能保证 GC 执行吗?四、怎么获取 Java 程序使用的内存?堆使用的百分比?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到…...

WPF引用halcon的HSmartWindowControlWPF控件一加上Name属性就,无缘无故运行后报错

报错内容: 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 MC1000 未知的生成错误“Could not find assembly System.Drawing.Common, Version0.0.0.0, Cultureneutral, PublicKeyTokencc7b13ffcd2ddd51. Either explicitly load this assembly using a method …...

Vue3组件库开发 之Button(2) 未完待续

Vue3组件库开发 之Button(1) 中新建项目,但未安装成功ESLINT 安装ESLINT npm install eslint vite-plugin-eslint --save-dev 安装eslint后,组件文件出现错误提示 添加第三方macros ,虽然不是官网但很多开发者都是vue3开发人员 安装macros…...

k8s节点RouteCreated为false

出现该情况后,一般是初始化节点失败。因此,需要把节点从集群中移除,再加入到集群中,即可解决。 通常出现这个状况后,该节点上是没有被分配pod ip的,可以通过命令查看: # 发现没有PodCIDR、PodC…...

Kafka(二)原理详解

一 、kafka核心总控制器(Controller) 在Kafka集群中会有一个或者多个broker,其中有一个broker会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。 作用:leader副…...

Flutter 屏幕适配之相对尺寸适配

在Android中我们可以通过脚本来动态生成适配于各个厂商的屏幕的相对尺寸。 那么在Flutter中我们如何通过相同的思路来实现同样的效果呢?我们知道,Android的每个厂商的屏幕大小存在非常大区别。有些长,有的短,有的粗,有…...

在线预约小程序源码系统:适合任何行业的在线预约,快捷方便,省时省心 带完整的搭建教程

互联网技术的发展,人们对便捷服务的需求越来越高。特别是在线预约服务,无论是在医疗、美容、餐饮还是其他行业中,用户都希望能够通过简单的方式预约到所需的服务。然而,传统的预约方式往往效率低下,不能满足用户的快速…...

科技领跑公益,擎天租机器人“天团”助阵2026渣打上海10公里跑

5月16日,“渣打上海10公里跑”在上海世博庆典广场开跑。国内领先机器人一站式应用平台擎天租携旗下多款明星机器人参与,通过机器人与体育活动的跨界融合,为现场4500名跑者带来了一场科技感十足的助跑盛宴。本次赛事涵盖了10公里个人跑及2公里…...

【职场】职场中你可以坚强,但不必逞强

职场中你可以坚强,但不必逞强 ——写给那些咬牙撑着、却不知道为什么要撑的人我见过太多这样的人。 凌晨两点还在改PPT,眼睛里布满血丝,手边的咖啡已经凉了。有人问他"还好吗",他抬起头,挤出一个笑&#xff…...

AD21原理图设计避坑指南:搞定多通道编译时的‘多个网络名称’报错

AD21多通道设计实战:彻底解决"Multiple Net Names"报错难题 当你在AD21中精心设计了一个多通道电路,满心期待点击"编译"按钮时,Messages面板突然弹出的红色"Multiple Net Names"错误提示,就像交响乐…...

AI 写作进入长篇记忆时代,AI让小说创作更可控

AI 写小说最常被讨论的问题,是写得快不快、文笔好不好。但对于真正写长篇的作者来说,还有一个更重要的问题:AI 记不记得住。 一部网文写到几十章、几百章后,人物关系会越来越复杂,伏笔会越来越多,世界观设…...

从绿光到算法:深入解析PPG信号检测的核心技术与实践挑战

1. 绿光背后的秘密:为什么PPG传感器偏爱这种颜色 你可能已经注意到,市面上大多数智能手表的心率监测功能都会发出幽幽的绿光。这可不是为了好看——绿光在PPG(光电容积脉搏波)技术中扮演着关键角色。让我用一个简单的比喻来解释&…...

实战指南:深度掌握5大梯度下降优化器的可视化秘籍

实战指南:深度掌握5大梯度下降优化器的可视化秘籍 【免费下载链接】gradient_descent_viz interactive visualization of 5 popular gradient descent methods with step-by-step illustration and hyperparameter tuning UI 项目地址: https://gitcode.com/gh_mi…...

TSN网络仿真入门:除了OMNeT++,这几个开源框架(NeSTiNg/CoRE4INET)到底该怎么选?

TSN网络仿真框架深度选型指南:从OMNeT生态到实战避坑 引言:当TSN遇见仿真工具丛林 在工业自动化与车载网络领域,时间敏感网络(TSN)正成为实时通信的基础设施。但部署前的验证环节往往让研究者陷入两难——直接搭建物理测试床成本高昂&#xf…...

SmartNIC与DPU技术解析:计算卸载与性能优化实践

1. SmartNIC与DPU技术概述在数据中心和高性能计算领域,网络瓶颈一直是制约系统性能的关键因素。传统网卡仅负责简单的数据包收发,而现代计算密集型应用需要更智能的网络处理能力。这就是SmartNIC(智能网卡)和DPU(数据处…...

基于ChatGPT的智能网页数据抓取:原理、实践与成本优化

1. 项目概述:当ChatGPT遇上网页抓取最近在做一个数据驱动的项目,需要从几十个不同结构的网站上抓取产品信息,手动复制粘贴显然不现实,而传统的爬虫脚本又需要为每个网站单独写解析规则,费时费力。就在我头疼的时候&…...

DB-GPT-Hub:基于大模型微调构建专属文本到SQL数据集的实践指南

1. 项目概述:当大模型遇见数据库,一场效率革命正在发生如果你是一名数据工程师、数据分析师,或者任何需要频繁与数据库打交道的开发者,那么你一定对这样的场景不陌生:面对一个陌生的数据库,你需要花大量时间…...