Конвертер CSV в YAML
YAML, это то, из чего состоят современные конфигурационные файлы: манифесты Kubernetes, рабочие процессы GitHub Actions, Docker Compose, плейбуки Ansible, фикстуры Rails. Этот конвертер считывает CSV и создаёт последовательность YAML, в которой каждая строка становится сопоставлением с ключами из строки заголовков. В выводе используется отступ в два пробела и порог инлайна на 4 уровне, что соответствует стилю большинства редакторов и линтеров.
Как CSV преобразуется в YAML
-
1
Вставьте CSV-файл
Образец заранее загружен, чтобы вы могли увидеть стандартную форму результата; замените его своими данными.
-
2
Выберите разделитель
По умолчанию, запятая. Введите `\t` для данных, разделённых табуляцией, или любой другой одиночный символ, который используется в вашем файле.
-
3
Заголовки становятся ключами
Первая строка считается строкой заголовков. Строки с данными становятся сопоставлениями по этим ключам в том же порядке, что и исходные столбцы.
-
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-переменные.
Инструмент доступен на других языках
- CSV → YAML 변환기 [KO]
- Chuyển đổi từ CSV sang YAML [VI]
- CSV-naar-YAML-converter [NL]
- CSV 转 YAML 转换器 [ZH]
- CSV zu YAML Konverter [DE]
- CSV to YAML Converter [EN]
- Konverter CSV ke YAML [ID]
- CSV-till-YAML-omvandlare [SV]
- Konwerter CSV na YAML [PL]
- تحويل CSV إلى YAML [AR]
- เครื่องแปลงข้อมูลจาก CSV เป็น YAML [TH]
- Convertidor de CSV a YAML [ES]
- Convertisseur CSV en YAML [FR]
- Conversor de CSV para YAML [PT]
- CSV→YAMLコンバーター [JA]
- CSV'den YAML'a Dönüştürücü [TR]
- Convertitore da CSV a YAML [IT]