Когда экспортируешь данные из JSON в CSV для Excel с русской локалью, числа с точкой вроде 3.14 внезапно превращаются в текст или ломают разбор по столбцам — потому что русская Windows и русский Excel по умолчанию ждут запятую как десятичный разделитель, а запятую-разделитель полей CSV заменяют точкой с запятой.
Из чего состоят форматы
- YAML — отступы вместо скобок, стандарт для конфигов CI/CD, Kubernetes, Docker Compose.
- CSV — плоская таблица, но с региональными вариациями разделителя (запятая vs точка с запятой).
- XML — атрибуты и пространства имён, до сих пор используется в SOAP-сервисах старых корпоративных и банковских систем.
- TOML — однозначный формат конфигов, популярен в экосистеме Rust (Cargo.toml).
Почему CSV из этого конвертера может «разъехаться» в русском Excel
Excel определяет разделитель CSV по региональным настройкам системы. Если Windows настроена на русскую локаль, где запятая — это десятичный разделитель, Excel автоматически ожидает точку с запятой (;) между полями CSV, а не запятую. Экспортированный этим инструментом файл с запятыми при открытии двойным щелчком может показаться одной длинной колонкой — решается выбором точки с запятой в настройках делимитера перед конвертацией.
Ловушка автотипизации в YAML
YAML-парсер угадывает тип значения без кавычек: version: 1.20 может стать числом 1.2, потеряв конечный ноль, а строка NO (например, двухбуквенный код Норвегии по ISO 3166) в YAML 1.1 интерпретируется как булево false. Эта реальная проблема настолько известна, что в сообществе её называют «Norway problem» — она ломала списки стран в конфигах, где Норвегия неожиданно исчезала. Значения, которые должны остаться строкой, стоит явно брать в кавычки перед конвертацией.
Зачем это нужно
- Перенести конфигурацию между инструментами, один из которых ждёт YAML, а другой — JSON.
- Выгрузить данные API в CSV для анализа в Excel или Google Таблицах.
- Состыковать систему на XML/SOAP с современным JSON-based API.