![cover](https://img-blog.csdnimg.cn/direct/459457d4d1644b93a4fdd89d26f94e4c.gif)
x-cmd pkg | dasel - JSON、YAML、TOML、XML、CSV 数据的查询和修改工具
dasel,是数据(data)和 选择器(selector)的简写,该工具使用选择器查询和修改数据结构。支持 JSON,YAML,TOML,XML 和 CSV 五种常用的数据格式作为输入和输出格式。实现常用数据格式(JSON, YAML, TOML, XML, CSV)之间的转换。单执行文件,不需要依赖第三方库。启动速度更快,在小数据比 jq/yq耗时更短,效率更高。
·
简介
dasel,是数据(data)和 选择器(selector)的简写,该工具使用选择器查询和修改数据结构。
- 支持 JSON,YAML,TOML,XML 和 CSV 五种常用的数据格式作为输入和输出格式。
- 实现常用数据格式(JSON, YAML, TOML, XML, CSV)之间的转换。
- 单执行文件,不需要依赖第三方库。
- 启动速度更快,在小数据比 jq/yq 耗时更短,效率更高。
首次用户快速实验指南
-
使用
x dasel
即可自动下载并使用 -
x-cmd 提供1分钟教程,其中包含了 dasel 命令常用功能的 demo 示例,可以帮你快速上手 dasel 。
-
使用案例:
# 查询 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 提供了:
性能特点
- dasel 并没有采用流式处理,在处理前,当前将整个数据都加载到内存中,因此,如果用户处理较大的数据时,dasel 可能会要求与数据大小相当(甚至更多)的内存。
- dasel 启动时间比 jq/yq 更优,因此在小数据处理时,dasel 的效率更高。官网提供了一份测试报告。
- 综上所述,dasel 在效率上能够足以应对手动维护的配置文件(例如 Kuberneter 的 yml)。加上其简单易用,DSL 和参数设计的可读性强,便于维护。如果你需要对配置文件进行增删改查,dasel 是一个不错的选择。
竞品
- 如果你需要更灵活的更强大(但学习成本更高)的控制,或者你处理数据很大,需要流式处理,有如下选择:
- 如果你想使用通用的 SQL 来查询和操作 JSON 和 CSV,那么 trdsql 值得一看。
进一步探索
- dasel 官方提供了详细的 Gitbook 文档,该文档对 dasel 的 DSL 进行了详尽的介绍。
- dasel 的 GitHub 地址
更多推荐
所有评论(0)