Парсер CSV/TSV
CSV (Comma-Separated Values) — это простой формат табличных данных, широко поддерживаемый электронными таблицами и базами данных. Этот инструмент разбирает файлы CSV и TSV, автоматически определяет разделители, обрабатывает поля в кавычках и отображает данные в форматированной таблице.
Спецификации
Типичные сценарии использования
- Предпросмотр CSV-экспортов перед импортом в базу данных
- Конвертация CSV в JSON для использования в API
- Валидация экспортированных данных из электронных таблиц
- Быстрый просмотр файлов логов и дампов данных
Возможности
- Автоопределение разделителя (запятая, табуляция, точка с запятой, вертикальная черта)
- Отображение в виде форматированной таблицы с заголовками
- Конвертация в массив JSON-объектов
- Интерактивный древовидный вид для JSON-представления
- Копирование в виде HTML-таблицы
- Транспонирование строк и столбцов
Примеры
Данные пользователей
Попробовать →CSV-файл с информацией о пользователях.
name,email,role
Alice,alice@example.com,admin
Bob,bob@example.com,user
Charlie,"charlie@example.com",userСоветы
- Первая строка обычно рассматривается как заголовки.
- Оборачивайте поля, содержащие запятые или переносы строк, в двойные кавычки.
- Двойные кавычки внутри полей в кавычках экранируются как "".
- TSV (с разделителем табуляцией) позволяет избежать многих проблем с кавычками.
Описание Парсер CSV/TSV
CSV (Comma-Separated Values) — один из самых старых и широко поддерживаемых форматов обмена данными. Несмотря на свою простоту, CSV имеет достаточно неоднозначностей, чтобы создавать постоянные проблемы совместимости. RFC 4180 определяет стандарт, но многие производители отклоняются от него, что приводит к проблемам разбора разделителей, кавычек, кодировки и окончаний строк.
Базовая структура — одна запись на строку с полями, разделёнными запятыми. Когда поле содержит запятую, перенос строки или двойную кавычку, оно должно быть заключено в двойные кавычки. Двойные кавычки внутри поля в кавычках экранируются удвоением (""). Первая запись обычно рассматривается как строка заголовков, хотя это соглашение, а не требование.
Вариации разделителей распространены. TSV (Tab-Separated Values) использует табуляцию, избегая большинства проблем с кавычками. Европейские локали, использующие запятую как десятичный разделитель, часто используют точку с запятой в качестве разделителя полей. Файлы с вертикальной чертой как разделителем встречаются в устаревших системах. Хороший парсер CSV автоматически определяет разделитель, анализируя первые несколько строк.
Кодировка символов — ещё один частый источник проблем. Excel на Windows сохраняет CSV в системной локальной кодировке, а не в UTF-8. Открытие CSV в UTF-8 в Excel может отображать искажённые символы. Добавление метки порядка байтов UTF-8 (BOM) в начало файла сигнализирует Excel, что файл закодирован в UTF-8. При обмене CSV-файлами между системами всегда проверяйте кодировку символов.
Когда данные CSV выглядят неправильно в Excel, две наиболее распространённые причины — это несоответствие кодировки и разделителя. Файл в UTF-8, открытый Excel в предположении локальной кодировки, отобразит искажённые символы, и добавление BOM обычно решает проблему. Проблемы с разделителем возникают в европейских локалях, где Excel ожидает точку с запятой, а не запятую. Использование мастера «Данные > Из текста» вместо двойного щелчка по файлу даёт явный контроль над настройками кодировки и разделителя.
Согласно RFC 4180, любое поле, содержащее запятую, перенос строки или двойную кавычку, должно быть заключено в двойные кавычки. Двойные кавычки внутри поля в кавычках экранируются удвоением. Большинство библиотек CSV обрабатывают это корректно, но проблемы возникают, когда файлы редактируются вручную или разбираются наивным разделением строк вместо полноценного парсера CSV. TSV (Tab-Separated Values) позволяет избежать большинства этих сложностей с кавычками, поскольку табуляция редко встречается в данных, что делает его популярным выбором в биоинформатике, науке о данных и контекстах, где значения полей часто содержат запятые.
CSV и JSON служат различным целям обмена данными. CSV идеален для плоских табличных данных с единообразными столбцами — он универсально поддерживается электронными таблицами и инструментами обработки данных и остаётся компактным для больших наборов данных. JSON — лучший выбор для вложенных или иерархических данных и является стандартным форматом для API. Для экспортов из баз данных, отчётности и рабочих процессов с электронными таблицами CSV остаётся практичным выбором по умолчанию.