dasel
使用统一选择语法查询、修改和转换 JSON、YAML、TOML、XML、CSV 等结构化数据的命令行工具。
dasel 的核心用途
dasel(Data-Select)是一款结构化数据命令行工具,能用统一选择语法查询、修改和转换 JSON、YAML、TOML、XML、CSV、HCL、INI 与 KDL。它适合在脚本、CI 和运维流程中读取配置字段、批量调整值,或把一种数据格式转换为另一种格式。
为什么要从只读查询开始
同一份数据在不同格式中的类型、空值、数组和字符串表示并不完全一致,转换工具也可能重排缩进或字段。首次使用应先把示例内容通过标准输入传入,验证选择器返回的字段和值,再把转换结果写到新文件。只有比较差异并准备好备份后,才适合执行修改或覆盖操作。
自动化使用边界
在 CI 中使用 dasel 时应固定版本、输入输出格式和编码,并对关键字段增加断言。配置中如果包含令牌或密钥,不要直接把完整文档打印到日志。复杂选择器还会受到 shell 引号规则影响,Windows PowerShell 脚本应先单独测试转义,再接入批量任务。
维护记录
本页于 2026-08-06 根据项目的多格式支持、查询、修改、转换和 Windows 预编译程序说明复核。归档文件为 v3.11.2 Windows amd64 单文件程序。
保存到自己的网盘
打开网盘后可直接获取,也可以先保存到自己的网盘,方便换设备继续使用。
夸克网盘(无需提取码)
推荐将「dasel」保存到该网盘
百度网盘
将「dasel」保存到该网盘
dasel Windows 查询和转换数据教程
本页文件是 Windows x64 单一可执行程序。首次使用先做只读查询,再尝试格式转换,最后才在备份文件上测试修改表达式。
安装前准备
- 准备一份不含真实密钥的 JSON 或 YAML 示例文件,并保留原始副本。
- 使用 PowerShell 时注意引号、管道和编码规则;脚本环境不同会影响参数解析。
- 明确输入格式和目标输出格式,尤其是无扩展名文件或通过标准输入传递数据时。
安装步骤
- 01
放入固定目录并改名
将 dasel_windows_amd64.exe 放到工具目录,可按需改名为 dasel.exe;运行版本或帮助参数确认文件可执行。
- 02
决定调用方式
临时使用可通过完整路径运行,经常使用再把目录加入用户 PATH。避免在不同项目中复制多个无法区分版本的程序。
- 03
建立测试数据
用包含对象、数组、数字和字符串的小文件测试查询结果,确认 PowerShell 编码与换行不会改变输入。
快速上手
- 01
查询嵌套字段
把 JSON 内容通过标准输入传给 dasel,指定 JSON 输入格式并使用选择器读取嵌套字段,先确认返回值和类型正确。
- 02
转换数据格式
指定 JSON 输入和 YAML 输出,将结果写入新文件;打开新文件核对数组、数字、布尔值和空值是否保持原意。
- 03
在副本上测试修改
使用赋值表达式更新字段时先输出完整根对象到新文件,对比差异后再决定是否替换原配置。
使用建议
- 把只读查询、格式转换和原地修改分开写成不同脚本步骤,出错时更容易定位。
- CI 中固定 dasel 版本和输入编码,避免升级或平台差异改变生成文件。
- 处理配置密钥时避免把完整内容打印到构建日志或 shell 历史。
故障排查与卸载方法
PowerShell 中选择器被错误解析怎么办?
使用适合 PowerShell 的单引号包裹选择器,先在简单字段上验证;复杂表达式可写入脚本文件,减少多层转义。
转换后字段类型变化怎么办?
检查源格式对数字、字符串、日期和空值的表示差异,显式指定输入输出格式,并对关键字段做转换前后断言。
- 删除程序和 PATH 配置从用户 PATH 中移除工具目录后删除可执行文件;保留仍被脚本引用的固定版本,避免自动化任务突然失效。
常见问题
dasel 能处理哪些数据格式?
当前项目说明列出 JSON、YAML、TOML、XML、CSV、HCL、INI 和 KDL;输入与输出格式应明确指定或在执行前核对识别结果。
dasel 修改文件会自动保留原格式吗?
查询、修改和转换可能改变缩进、字段顺序或表示形式。处理真实配置前先复制文件,并比较输出内容,不要直接覆盖唯一副本。
dasel 和 jq 有什么区别?
dasel 的重点是用一套选择语法处理多种结构化格式;如果只处理 JSON 且依赖 jq 的既有脚本生态,继续使用 jq 可能更直接。
下载时需要提取码吗?
夸克网盘无需提取码;百度网盘所需的四位提取码会直接显示在下载入口旁。