AnyFormat

00 YAML → CSV

YAML to CSV

Finds the list in your config and tabulates it.

01YAML in
02CSV out
03Options 5

Flattening turns {"address":{"city":"Oslo"}} into an address.city column.

  • No upload The conversion runs in this tab. Your file never travels — not to us, and not to the advertising.
  • No sign-up, no email, no daily cap There is no account system to sign up to.
  • No size limit we invented Only your device's memory — about ~2 GB on a desktop browser, ~400 MB on a phone.
  • Turn your Wi-Fi off and convert anyway The conversion needs nothing but this page. Ads will not load without a connection; your file will still convert. That is the whole claim, and it takes five seconds to check.

Turns the list inside a YAML file into a table. Config files are rarely a flat list at the top level, so the tool searches for the sequence of mappings that looks like the record set and reports which key it used.

Config files are not tables

A Kubernetes manifest or a CI workflow is a tree, not a table, and forcing it into columns produces something wide and strange. This tool works well when the YAML contains a genuine list — a list of users, environments, hosts, or steps. When it does not, you get one row with a column per leaf value, which is occasionally what you want and usually a sign that CSV is the wrong destination.

What actually becomes a row

A table needs a list of records, so the top level has to be a sequence of mappings. A YAML file that is one mapping — the shape most config files take — produces a single row, which is usually a sign that you wanted a different key as the root. Where the file nests deeper, keys are flattened with dots: server.tls.port becomes one column. That keeps every value reachable, at the cost of a header row that can get wide fast on a deeply nested file.

Records that do not agree on their keys

A YAML sequence has no schema, so nothing stops the third entry from having a field the first two lack. Every record is read before the header is decided and the columns are the union of all of them, which means a key that appears once still gets a column and the other rows leave it empty. The alternative — taking the first record's keys as the header — is how data quietly disappears in a conversion, and it disappears most often from exactly the optional fields you were checking for.

Questions

I got one very wide row.
The file has no list in it, so every leaf became a column. That usually means the data is a tree and CSV is not the right shape for it.
It picked the wrong list out of my file.
The tool tells you which key it used. If it chose badly, convert to JSON first, trim to the array you want, then use JSON to CSV — that gives you full control over which node becomes the rows.
What happens to a multi-document YAML file?
The documents are combined into an array first, so a Kubernetes manifest with several resources becomes one row per resource.
Is my data uploaded anywhere?
No. The conversion runs as JavaScript inside this tab. Open your browser's Network panel and convert something — you will see no request carrying your data, because there is no server to send it to. You can also turn your Wi-Fi off and convert anyway.