Paste YAML or open a .yaml file and get a CSV table in one step. The converter finds the list of records, flattens nested keys into columns such as contact.email, and lets you choose, drop and reorder columns before you download.
Last updated:
Columns and order
Untick a column to drop it. Use the arrows to move a column left or right in the CSV.
Table preview
Your YAML is parsed in your browser and never uploaded. Tip: Ctrl + Enter converts.
Advertisement
Advertisement
How to use the YAML to CSV Converter
Paste your YAML into the left box or open a .yaml / .yml file. A sample team roster loads to start.
Check where the rows come from. Auto-detect picks the largest list of records; choose another list or mapping if needed.
Set flattening options: the separator for nested key names and how lists inside a record are written.
Arrange the columns: untick the ones you do not need and use the arrows to change their order.
Download .csv or copy the CSV. Tick Excel-friendly if you will open the file in Excel.
Example: from YAML records to a CSV table
This YAML has a list of two people, each with a nested mapping and a list:
members:
- name: Ada Morgan
contact:
email: [email protected]
skills: [go, terraform]
- name: Ben Ortiz
contact:
email: [email protected]
phone: "+1 555 0102"
skills: [python]
Columns appear in the order they are first seen. A key that only some records have (here contact.phone) still gets a column, and records without it get an empty cell. Use the column list to move it next to contact.email.
JSON text in one cell, or indexed columns such as jobs.0.name
Empty list or mapping
Empty cell
Multi-line block (| or >)
One quoted cell; line breaks are kept inside the quotes
Date: 2026-03-14
2026-03-14 (ISO 8601)
Anchors and aliases (&base, *base, <<)
Resolved to their values before flattening
Tips
Quoting: cells that contain the delimiter, a double quote or a line break are wrapped in double quotes, and inner quotes are doubled, as described in RFC 4180. Most spreadsheet and database importers expect exactly this.
Leading zeros: YAML reads zip: 02134 as the number 2134 under some parsers and as text under others. Quote such values in the YAML ("02134") to keep the zeros.
Kubernetes and Compose files: these are deeply nested configs rather than tables. Pick a specific list, such as spec.template.spec.containers, to get one row per container.
A list of mappings, where each item has the same kind of keys, for example a list of users with name, email and role. Each item becomes one row and each key one column. The list can be the whole document or sit under a key such as members:, and the converter finds it automatically.
How are nested keys turned into columns?
Nested mappings are flattened with dot notation: contact: {email: [email protected]} becomes a column named contact.email. You can switch the separator to an underscore (contact_email) or a slash (contact/email) if the dot clashes with your tooling.
What happens to lists inside a record?
By default a list of simple values is joined in one cell with a semicolon, so skills: [go, sql] becomes go; sql. Indexed columns give each value its own column (skills.0, skills.1), and JSON text keeps the exact structure, which is handy for lists of objects.
Can I convert a mapping of records instead of a list?
Yes. If the YAML looks like users: {alice: {...}, bob: {...}}, pick that mapping in the Rows come from list. Each entry becomes a row and its name goes into a key column.
How are dates, booleans and empty values written?
Dates such as 2026-03-14 stay in ISO format, true and false are written as text, and numbers keep their value. Empty or null values become an empty cell by default; you can write null or NULL instead, which helps when the CSV is imported into a database.
Why do accented characters look wrong in Excel?
Excel sometimes reads CSV files with a legacy code page instead of UTF-8. Tick Excel-friendly (UTF-8 BOM) before downloading so Excel recognises the encoding. Some regional versions of Excel also expect a semicolon delimiter.
Is my YAML uploaded anywhere?
No. The YAML is parsed by a JavaScript library running in this page and the CSV is built in your browser, so your data never leaves your device.
Are all the tools on FreeToolCabin tested for quality and accuracy?
Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.