RunToolz iconRunToolz
Welcome to RunToolz!
Конвертация данныхРабочий процессИнструменты разработчика

Конвертация данных между форматами без потери рассудка

Практическое руководство по переносу данных между CSV, JSON, YAML и XML — настоящий пайплайн для миграций и интеграций.

RunToolz Team12 февраля 2026 г.4 min read

Ты уже бывал в этой ситуации. Экспорт из базы данных выдаёт CSV. Новый API хочет JSON. Конфигурация деплоя требует YAML. Устаревшая система понимает только XML. И почему-то именно тебе нужно заставить их всех общаться друг с другом.

Конвертация форматов данных звучит просто — пока ты реально не начнёшь это делать. Вот как построить настоящий пайплайн, который не развалится.

Сценарий: Реальная миграция

Допустим, ты мигрируешь пользовательские данные из старой системы в новую. Вот с чем ты работаешь:

  • Источник: CSV-экспорт из старой базы данных (10 000 строк, 15 столбцов)
  • Слой API: Новая система принимает JSON через REST API
  • Конфигурационные файлы: Настройки деплоя в YAML
  • Устаревшая интеграция: Партнёрская система, которой всё ещё нужны XML-фиды

Четыре формата. Один набор данных. Поехали.

Шаг 1: CSV в JSON — От экспорта к готовым данным для API

Твой CSV выглядит так:

id,name,email,plan,created
1,Alice,alice@example.com,pro,2024-03-15
2,Bob,bob@example.com,free,2024-06-22

Конвертируешь в JSON и получаешь структурированные данные, которые твой API может потреблять:

[
  {
    "id": 1,
    "name": "Alice",
    "email": "alice@example.com",
    "plan": "pro",
    "created": "2024-03-15"
  }
]
Хотите попробовать сами?Convert CSV to JSON

Обрати внимание на: Поля в кавычках с запятыми внутри, пустые значения, которые должны быть null, а не пустыми строками, и форматы дат, которые отличаются от строки к строке. Это те баги, которые всплывают на строке 4 738, когда ты думал, что всё работает.

Шаг 2: JSON в YAML — Для конфигурационных файлов

Твоему деплою нужна YAML-конфигурация. Структура данных та же — просто нужен другой синтаксис:

users:
  - id: 1
    name: Alice
    email: alice@example.com
    plan: pro
    created: "2024-03-15"

YAML более читабелен для конфигурационных файлов, поэтому Kubernetes, Docker Compose и CI/CD-пайплайны используют именно его. Но он чувствителен к пробелам, так что один неправильный отступ — и твой деплой ломается в 2 часа ночи.

Хотите попробовать сами?Convert Between YAML and JSON

Шаг 3: JSON в XML — Для устаревших систем

Та самая партнёрская система из 2015 года хочет XML. Нет, они не будут обновлять свой API. Да, тебе всё равно придётся его поддерживать.

<users>
  <user>
    <id>1</id>
    <name>Alice</name>
    <email>alice@example.com</email>
    <plan>pro</plan>
    <created>2024-03-15</created>
  </user>
</users>

Конвертация прямолинейна, но у XML есть свои особенности — атрибуты против элементов, требования к пространствам имён, валидация схемы. XML-конвертер справляется со структурной трансформацией, а ты занимаешься бизнес-логикой.

Шаг 4: Валидация всего через JSON Formatter

На каждом этапе форматируй и валидируй свой JSON. Одна пропущенная скобка, одна лишняя запятая, одна неэкранированная кавычка — и твой импорт молча теряет записи или падает целиком.

Перед отправкой любых сконвертированных данных в API отформатируй их и визуально проверь структуру. Пять секунд форматирования экономят пять часов отладки «почему пропали 200 записей».

Типичные подводные камни миграции данных

Проблемы с кодировкой: CSV из Excel на Windows может быть в Windows-1252, а не в UTF-8. Имена твоих японских клиентов превращаются в знаки вопроса. Всегда проверяй кодировку первым делом.

Приведение типов: CSV обрабатывает всё как строки. Число 001 в CSV становится 1 в JSON. Почтовые индексы, номера телефонов и поля ID с ведущими нулями — обычные жертвы.

Вложенные данные: CSV плоский. JSON вложенный. Тебе нужно решить, как address_street, address_city, address_zip в CSV отображаются в объект address в JSON.

Null против пустого: Пустая ячейка CSV — это null, "" или ключ вообще нужно опустить? Определи это до начала работы, а не когда найдёшь баг.

Паттерн пайплайна

Для любой миграции данных рабочий процесс такой:

  1. Экспорт из исходной системы (обычно CSV или SQL-дамп)
  2. Конвертация в рабочий формат (CSV в JSON)
  3. Трансформация структуры (переименование полей, вложение объектов, исправление типов)
  4. Валидация результата (форматирование и проверка)
  5. Конвертация в целевой формат (YAML или XML)
  6. Импорт в целевую систему

Инструменты покрывают шаги 2, 4 и 5. Шаги 1, 3 и 6 — это твой код. Разделение «конвертации» и «трансформации» делает процесс управляемым.


Миграции данных никогда не бывают такими простыми, как выглядят в плане. Но надёжные инструменты конвертации на каждом этапе означают, что ты тратишь время на реальные проблемы — бизнес-логику, пограничные случаи и качество данных — вместо борьбы с синтаксисом форматов.