Skip to main content

CSV 到 YAML 转换器 使用 js-yaml 将 CSV 数据转换为 YAML 格式,实现精确的输出。

CSV 到 YAML illustration
🔄

CSV 到 YAML

使用 js-yaml 将 CSV 数据转换为 YAML 格式,实现精确的输出。

1

粘贴 CSV 数据

在第一行包含列标题的 CSV 数据粘贴到此处。

2

查看 YAML 输出

YAML 输出会立即以对象列表的形式出现。

3

复制或使用

复制 YAML 输出用于配置文件或应用程序中。

Loading tool...

What Is CSV 到 YAML?

CSV 到 YAML 转换器可以将以逗号分隔的表格数据转换为 YAML(YAML Ain't Markup Language)格式。YAML 广泛用于配置文件(Docker、Kubernetes、CI/CD 流水线)、数据序列化和人类可读的数据存储。本转换器解析 CSV 输入时,正确处理引用的字段和值中的逗号,然后使用 js-yaml 库生成干净、格式良好的 YAML 输出。每行 CSV 数据都成为 YAML 对象列表的一部分,其中列标题作为键。输出结果可以直接用于 Kubernetes 清单、Ansible 剧本、GitHub Actions 和其他基于 YAML 的配置。

Why Use CSV 到 YAML?

  • 使用行业标准的 js-yaml 库生成正确的 YAML。
  • 处理 CSV 边缘情况:引用的字段、值中的逗号、转义引号。
  • 输出干净的 YAML,不包含不必要的引号或转义字符。
  • 非常适合将电子表格数据转换为配置格式。

Common Use Cases

DevOps 配置

将电子表格管理的配置数据转换为 YAML,用于 Kubernetes、Docker Compose 或 CI/CD 流水线。

Ansible Playbooks

将库存或变量数据从 CSV 格式转换为 YAML,用于 Ansible 自动化。

数据序列化

将表格数据转换为 YAML,实现人类可读的数据存储和交换。

API 配置

从电子表格数据生成 OpenAPI/Swagger 规范的 YAML 配置。

Technical Guide

转换器首先使用自定义状态机解析器解析 CSV 输入,该解析器正确处理 RFC 4180 边缘情况。然后将解析的数据转换为一个 JavaScript 对象数组,其中键来自标题行。

YAML 生成由 js-yaml 库的 dump() 函数处理,使用特定的选项:lineWidth 设置为 -1 以防止行折叠,无Refs 启用以防止 YAML 锚点/别名引用。这产生了干净、可读的 YAML 输出。

js-yaml 库自动处理正确的 YAML 转义:可能被误解为 YAML 类型(例如 "true"、"null"、"1.0")的字符串将被正确引号。多行字符串在适当的情况下使用 YAML 的块标量表示法。

由于 CSV 没有原生类型系统,因此所有来自 CSV 的值都被视为字符串。js-yaml 库仅在必要时添加引号以维护 YAML 有效性。

Tips & Best Practices

  • 1
    列标题变为 YAML 键 -- 使用简单、描述性的名称,不包含特殊字符。
  • 2
    所有 CSV 值都被视为字符串。如果需要,可以使用 YAML 编辑器更改类型。
  • 3
    输出是一个 YAML 序列(列表)中的映射(对象)-- 最常见的数据结构。
  • 4
    对于嵌套的 YAML 结构,先转换为 JSON,然后再使用 JSON 转 YAML。

Related Tools

Frequently Asked Questions

Q 使用了哪个 YAML 库?
该转换器使用 js-yaml,这是最流行的 JavaScript YAML 库,用于生成可靠和标准兼容的 YAML 输出。
Q 是否保留数字值?
CSV 值最初被视为字符串。如果它们看起来像数字,则 js-yaml 库可能会在输出中不带引号。
Q 可以转换回 CSV 吗?
是的,可以使用我们的 YAML 转 CSV 转换器进行逆向转换。
Q 是否支持嵌套 YAML?
直接从 CSV 到 YAML 的转换产生一个平面结构。对于嵌套 YAML,需要先通过 JSON 进行转换。
Q 输出是否为有效的 YAML?
是的,输出由 js-yaml 生成,这确保了完全符合 YAML 1.2 标准。

About This Tool

CSV 到 YAML is a free online tool by FreeToolkit.ai. All processing happens directly in your browser — your data never leaves your device. No registration or installation required.