Agent Skills
返回列表
💻

Dasel 多格式数据选择器与修改器

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/dasel-multi-format-data-selector-modifier。

技能介绍

要解决的问题

结构化数据很少只以一种格式出现。配置文件是 TOML,接口返回的是 JSON,运维平台导出的是 CSV,而下游管道又只认 YAML。每种格式过去都有一套自己的查询方言,一条 shell 管道里可能要串联三四个互不兼容的过滤器。更麻烦的是,这类工具大多只负责"读":当你想命中某个节点并把结果原地改掉、再以另一种格式输出时,往往得临时写个脚本。

它是怎么做的

Dasel 的思路是用一套统一的选择器语法,把查询、修改、转换收敛到同一个入口。

  • 统一查询:无论输入是 JSON、YAML、TOML、XML、CSV、HCL 还是 INI,都用同一种选择器表达式定位节点,不用为每种格式各记一套 DSL。
  • 原地修改:选择器不是只读的。命中节点后可以直接赋值、删除或调整结构,再决定结果怎么输出。
  • 跨格式转换:受支持的类型之间可以互相转换,只需分别指定输入格式与输出格式,一条命令就能跑通 CSV → YAML → JSON 这类流水线。

典型流程是:确认输入格式 → 写选择器表达式 → 执行并指定输出格式。由于它同时是命令行工具和 Go 库,管道里的调用与 Go 项目里的集成共用同一套语义,不会出现"命令行能干、代码里写法不一样"的割裂。

适用边界与注意点

  • 它面向的是结构化文本数据,不处理二进制内容、数据库连接或远程接口调用,数据得先落到文件或流里。
  • 选择器表达式对节点路径的描述能力有边界,嵌套很深或类型不明确的数据结构,可能需要先规整一遍再选。
  • 作为上游项目的第三方封装技能,具体行为以对应版本的 Dasel 文档为准,语法细节会随版本演进而变化。
  • 转换受各格式自身语义约束,XML 的属性与标签、CSV 的类型信息,在不同格式间搬运时可能需要额外指定或接受丢失。

使用场景

  • 配置文件要从 YAML 转成 TOML 部署到不同环境,且只需保留其中部分字段
  • 拿到导出的 CSV 报表,要转成 JSON 供接口消费并按条件筛选指定行
  • 在 CI 脚本里对 YAML 配置批量替换字段,不想为每种格式各写一套脚本
  • 处理遗留系统的 XML 数据,需转换成 YAML 并提取深层嵌套节点的值

适合人员

  • 后端开发者:服务配置常在 JSON、YAML、TOML 之间切换,不想为每种格式各记一套查询语法
  • 数据工程师:上游给的 CSV 和 XML 数据要清洗成 JSON 进入管道,需要一条命令完成格式转换
  • DevOps 工程师:CI 流水线里要批量修改配置文件字段,希望命令行工具同时支持查询与原地修改
  • 基础设施工程师:HCL 或 INI 格式的配置文件需要转成 YAML 纳入统一管理