Конвертер CSV в YAML

YAML, это то, из чего состоят современные конфигурационные файлы: манифесты Kubernetes, рабочие процессы GitHub Actions, Docker Compose, плейбуки Ansible, фикстуры Rails. Этот конвертер считывает CSV и создаёт последовательность YAML, в которой каждая строка становится сопоставлением с ключами из строки заголовков. В выводе используется отступ в два пробела и порог инлайна на 4 уровне, что соответствует стилю большинства редакторов и линтеров.

Как CSV преобразуется в YAML

  1. 1

    Вставьте CSV-файл

    Образец заранее загружен, чтобы вы могли увидеть стандартную форму результата; замените его своими данными.

  2. 2

    Выберите разделитель

    По умолчанию, запятая. Введите `\t` для данных, разделённых табуляцией, или любой другой одиночный символ, который используется в вашем файле.

  3. 3

    Заголовки становятся ключами

    Первая строка считается строкой заголовков. Строки с данными становятся сопоставлениями по этим ключам в том же порядке, что и исходные столбцы.

  4. 4

    YAML безопасно выгружается

    Результат формирует компонент Symfony YAML, который заключает значения в кавычки, когда иначе возникла бы неоднозначность с булевыми значениями, числами или датами.

Важные особенности YAML, которые стоит знать перед вставкой результата

YAML славится тем, что на поверхности выглядит снисходительным, а под ней полон ловушек. Дампер справляется с большинством из них, но ваши данные всё равно должны пережить полный цикл преобразования туда и обратно.

Проблема Норвегии и её спутники

YAML 1.1 трактует голые no, yes, on, off, true, false, y, n (а также их варианты с заглавными буквами) как булевы значения. То есть столбец с кодом страны, где NO означает Норвегию, может незаметно превратиться в false.

Исходная ячейка Выводится как (без кавычек) Обычно подразумевается
NO false Страна Норвегия
ON true Штат Онтарио
123 123 Число или идентификатор
0100 64 (восьмеричное!) Код с ведущим нулём

Дампер автоматически заключает рискованные значения в кавычки, но если в выводе вы видите неверные типы, переключитесь на парсеры YAML 1.2 на следующем этапе или явно заключайте в кавычки важные для вас значения.

Выбор форматирования

  • Отступ в два пробела. Стандарт для большинства редакторов; такие линтеры, как yamllint, используют его по умолчанию.
  • Порог инлайна 4. Глубоко вложенные структуры ниже 4-го уровня выводятся в одну строку, а выше, разворачиваются на несколько строк. Настройте это на следующем этапе, если нужны более строгие блоки.
  • Якоря и псевдонимы не создаются. Каждая строка, это новое сопоставление, даже если строки повторяются.

Пример вывода

- name: Alice
  age: 30
- name: Bob
  age: 25

Когда выбирать YAML вместо JSON

  • Конфигурации, редактируемые вручную, где важны комментарии и многострочные строки.
  • Манифесты Kubernetes, конвейеры CI, плейбуки Ansible.
  • Любые случаи, когда файл читают люди не меньше, чем машины.

В остальном JSON строже и быстрее разбирается, предпочитайте его для сетевых форматов и генерируемых данных.

Часто задаваемые вопросы

YAML 1.1 интерпретирует голое NO как булево значение. Конвертер заключает рискованные значения в кавычки, но если последующий парсер всё равно приводит типы, заключите проблемные ячейки в кавычки перед вставкой результата или перейдите на парсер YAML 1.2, который воспринимает такие значения как обычные строки.

С этим конвертером, нет: каждая строка превращается в плоское сопоставление. Для вложенного YAML напишите небольшой скрипт на основе библиотеки YAML или сначала преобразуйте данные в JSON и придайте им нужную форму в JSON-редакторе.

Ячейки разбираются функцией str_getcsv с выбранным вами разделителем. Значения в кавычках сохраняют встроенные разделители и кавычки так же, как это делал бы настоящий парсер CSV.

Да. Вставленный CSV отправляется на наш сервер, потому что разбор и сериализация в YAML выполняются там. Он используется только для формирования результата YAML и не сохраняется.

Сопутствующие инструменты

Справочная таблица ASCII

Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.

Справочник сочетаний клавиш

Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.

Справочник символов HTML

Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.

Счетчик FPS

Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.

Генератор цветовой палитры

Создавайте монохромные, аналоговые, комплементарные, триадные или тетрадные палитры из базового HEX-цвета и экспортируйте готовые CSS-переменные.

Инструмент доступен на других языках