CSV to YAML

Convert a CSV table into a YAML list of objects keyed by the header row. Runs entirely in your browser, no upload.

YAML

About this tool

CSV to YAML turns a CSV table into a YAML list of objects, one object per row, keyed by the header:

- name: Ada
  age: 36
- name: Bo
  age: 40

Privacy

Everything runs in your browser via WebAssembly — your CSV is never uploaded. Also available from the gizza CLI and in chat.

Common uses

FAQ

How does type inference decide what becomes a number or boolean?

With inference on (the default), an empty cell becomes null, true/false become booleans, and anything that parses as an integer or float becomes a number. Values that would lose information — like the leading-zero code 007 or a +1 — deliberately stay strings. Switch inference off to keep every cell a string.

What if my CSV has no header row?

Untick the header option and the tool generates col1, col2, … keys for each column instead. The same fallback fills in any blank header cells when the header option is on, so you never get an empty YAML key.

Can rows have different numbers of cells?

Yes — parsing is flexible. The object keys come from the widest row, and any missing cells in shorter rows are emitted as empty values, so every YAML object has the same set of keys.

Which delimiters are supported?

Comma (default), tab, semicolon, and pipe — pick one explicitly if your file isn't comma-separated, since the delimiter is not auto-detected.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool csv-to-yaml "name,age
Ada,36
Bo,40"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/csv-to-yaml/?data=name%2Cage%0AAda%2C36%0ABo%2C40&header=true&infer_types=true&delimiter=%2C

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.