Перейти к инструменту
ViewCSV
Без загрузки на сервер

Конвертация CSV в YAML

orders.csv· ПРИМЕР15 строк · 8 столбцов
Типы значений
Текст, похожий на числа, true/false или даты, берётся в кавычки, чтобы при чтении он остался тем же текстом.
- order_id: "001041"
  customer: Мария Волков
  city: Санкт-Петербург
  product: Notebook A5
  quantity: "5"
  unit_price: "145.75"
  order_date: "2026-01-11"
  status: pending
- order_id: "001042"
  customer: Иван Волков
  city: Москва
  product: Desk lamp
  quantity: "6"
  unit_price: "108.80"
  order_date: "2026-02-13"
  status: pending
- order_id: "001043"
  customer: Наталья Иванов
  city: Самара
  product: Chair, ergonomic
  quantity: "7"
  unit_price: "15.85"
  order_date: "2026-03-21"
  status: refunded
- order_id: "001044"
  customer: Михаил Кузнецов
  city: Нижний Новгород
  product: Coffee beans 1kg
  quantity: "6"
  unit_price: "85.33"
  order_date: "2026-04-12"
  status: pending
- order_id: "001045"
  customer: Михаил Морозов
  city: Омск
  product: USB-C cable
  quantity: "7"
  unit_price: null
  order_date: "2026-05-04"
  status: paid
- order_id: "001046"
  customer: Иван Морозов
  city: Москва
  product: Desk lamp
  quantity: "1"
  unit_price: "57.41"
  order_date: "2026-06-18"
  status: refunded
- order_id: "001047"
  customer: " Мария Попов "
  city: Новосибирск
  product: USB-C cable
  quantity: "7"
  unit_price: "194.44"
  order_date: "2026-07-15"
  status: shipped
- order_id: "001048"
  customer: Елена Петров
  city: Новосибирск
  product: USB-C cable
  quantity: "4"
  unit_price: "159.07"
  order_date: "2026-08-02"
  status: refunded
- order_id: "001049"
  customer: Елена Кузнецов
  city: Омск
  product: USB-C cable
  quantity: "3"
  unit_price: "119.82"
  order_date: "2026-09-22"
  status: paid
- order_id: "001050"
  customer: Елена Новиков
  city: Санкт-Петербург
  product: Desk lamp
  quantity: "8"
  unit_price: "39.58"
  order_date: "2026-01-03"
  status: shipped
- order_id: "001051"
  customer: Михаил Фёдоров
  city: Нижний Новгород
  product: Notebook A5
  quantity: "8"
  unit_price: "24.52"
  order_date: "2026-02-12"
  status: paid
- order_id: "001052"
  customer: Сергей Соколов
  city: Казань
  product: Chair, ergonomic
  quantity: "8"
  unit_price: "75.43"
  order_date: "2026-03-06"
  status: paid
- order_id: "001053"
  customer: Анна Фёдоров
  city: Нижний Новгород
  product: Notebook A5
  quantity: "9"
  unit_price: "149.13"
  order_date: "2026-04-10"
  status: shipped
- order_id: "001054"
  customer: Анна Смирнов
  city: Екатеринбург
  product: Notebook A5
  quantity: "2"
  unit_price: "18.09"
  order_date: "2026-05-20"
  status: refunded
- order_id: "001043"
  customer: Наталья Иванов
  city: Самара
  product: Chair, ergonomic
  quantity: "7"
  unit_price: "15.85"
  order_date: "2026-03-21"
  status: refunded

15 строк · 1 файл

Откройте или вставьте CSV-файл — каждая строка станет элементом списка YAML с ключами из заголовка. По умолчанию все значения остаются текстом, а значения, которые парсер YAML иначе понял бы по-своему, — NO, yes, 0150, 2024-03-01, null, — берутся в кавычки, чтобы загружаться ровно в том виде, как записаны. Файл конвертируется в вашем браузере и никогда не загружается на сервер.

Как преобразовать CSV в YAML

  1. Нажмите Открыть файл, перетащите на инструмент файл .csv, .tsv или .txt или выберите Вставить. Если ключи выглядят неправильно, проверьте разделитель и кодировку в разделе Параметры импорта.
  2. Выберите Типы значений и то, как записываются Пустые ячейки. На вкладке YAML виден ровно тот текст, который окажется в скачанном файле.
  3. Выберите Отступы, затем нажмите Копировать или Скачать YAML.

Результат — последовательность верхнего уровня (элементы - key: value): такую структуру используют для фикстур, начальных данных и файлов данных статических сайтов. Если нужен JSON, у CSV в JSON те же настройки типов.

Что делает каждая настройка

Все значения как текстВариант по умолчанию. Каждое значение — строка YAML; кавычки добавляются только там, где простой скаляр был бы прочитан как что-то другое.
Распознавать числа и true/falseСтолбец становится числами YAML, только если каждое непустое значение — простое число без ведущих нулей и не больше чем с 15 значащими цифрами; столбцы из true/false (в любом регистре) становятся логическими значениями. yes/no и даты остаются строками в кавычках. Числа записываются в каноническом виде, так что 1.50 становится 1.5.
Пустые ячейкиnull (по умолчанию) записывает key: null; Пустая строка "" записывает key: ""; Не записывать ключ убирает этот ключ из строки.
Отступы2 пробела (по умолчанию) или 4 пробела для ключей под каждым элементом списка.

Какие неоднозначные значения берутся в кавычки

Результат записывается так, чтобы одинаково читаться и парсерами YAML 1.2, и более старыми парсерами YAML 1.1 вроде PyYAML, которые считают логическими значениями и числами больше слов.

  • Коды стран и ответов: NO, yes, off, y и on берутся в кавычки, так что код Норвегии не загрузится как false. Это относится и к ключам ("on": x).
  • Ведущие нули: 0150 и 08001 берутся в кавычки; без кавычек YAML 1.1 читает их как восьмеричные или десятичные числа и теряет ноль.
  • Даты и числа в текстовом режиме: 2019-04-01 и 12 берутся в кавычки, чтобы не загрузиться как метка времени или целое число.
  • Текст, похожий на null: ячейка с null или ~ берётся в кавычки, поэтому остаётся вашим текстом и не путается с пустой ячейкой.
  • Переносы строк внутри значения превращаются в литеральный блок |-, а текст с : или # внутри берётся в кавычки. Длинные строки никогда не переносятся.
  • Заголовки используются как ключи ровно так, как записаны, включая пробелы, кириллицу и другие нелатинские письменности. Пустой заголовок становится Column 3, повторяющийся — name (2).

Устранение неполадок

  • Числовой столбец остался в кавычках, хотя включено «Распознавать числа и true/false». Хотя бы одно значение не является простым числом, например 1,5, 12 kg или 007. Найдите его в просмотре CSV.
  • Столбец yes/no не стал логическим. Преобразуются только true и false, потому что yes, no и on означают логические значения лишь в YAML 1.1. Если нужны логические значения, сначала замените их в CSV, например с помощью редактора CSV.
  • В ключах странные символы вроде é или ����. Файл не в UTF-8. Выберите его кодировку (например, Windows-1251) в параметрах импорта.
  • Всё оказалось под одним ключом. Разделитель определён неверно; задайте его в параметрах импорта.

Ограничения и конфиденциальность

Файлы до 25 МБ, 100 000 строк или 2 млн ячеек открываются с живым предпросмотром первых 200 строк. Бо́льшие файлы конвертируются в потоковом режиме: файл читается частями дважды (сначала чтобы измерить столбцы и их типы, затем чтобы записать результат), уведомление сообщает, что скачанный файл охватывает весь файл, а кнопки Копировать нет. Один выходной файл ограничен 4 ГБ.

Конвертация идёт в фоновом обработчике в этой вкладке, поэтому страница не зависает, а кнопка Отмена её останавливает. CSV никогда не отправляется на сервер.

Пример

Список клиентов с кодами стран, почтовыми индексами с ведущими нулями, флагами yes/no, датами и пустыми ячейками, преобразованный с настройками по умолчанию (всё как текст, пустые ячейки как null). С Распознавать числа и true/false меняется только orders — на 12, 3 и 7.

CSV
country,code,postcode,vat_registered,since,orders
Norway,NO,0150,yes,2019-04-01,12
Spain,ES,08001,no,2021-11-15,3
United States,US,02134,,,7
YAML
- country: Norway
  code: "NO"
  postcode: "0150"
  vat_registered: "yes"
  since: "2019-04-01"
  orders: "12"
- country: Spain
  code: ES
  postcode: "08001"
  vat_registered: "no"
  since: "2021-11-15"
  orders: "3"
- country: United States
  code: US
  postcode: "02134"
  vat_registered: null
  since: null
  orders: "7"

Вопросы и ответы

Почему `NO` в кавычках?

В YAML 1.1 NO, no, off и n без кавычек означают false. Кавычки сохраняют код страны Норвегии — или любой ответ, записанный как no, — текстом в любом парсере.

Можно ли получить один словарь с ключами по идентификатору вместо списка?

Нет. Каждая строка CSV записывается одним элементом списка, в порядке файла. Вывод со словарём по ключу здесь недоступен.

Корректен ли результат как YAML 1.2?

Да. Дополнительные кавычки, нужные для YAML 1.1, остаются корректным YAML 1.2; они лишь явно помечают как строки значения, которые и так были строками.

Стандарты и справочные материалы