TSV и экранирование символов: запятая внутри поля
В TSV поля разделены символом табуляции, а запятые внутри текста безопасны. Поэтому формат удобен для адресов, списков и цитат. Он хуже переносится между системами: табуляция невидима и легко превращается в пробелы при копировании. Ниже — как не потерять структуру.
Чем TSV отличается
В TSV поля разделены символом табуляции, а запятые внутри текста безопасны. Поэтому формат удобен для полей с адресами, списками и цитатами. Он хуже переносится между системами: табуляция невидима и легко превращается в пробелы при копировании.
Правило кавычек
В CSV поле с запятой заключается в двойные кавычки, а кавычка внутри поля удваивается. Если этого не делать, строка распадается на лишние столбцы. Проверьте файл с полями, где встречаются перечисления через запятую.
Смешанные символы
В одном поле могут встретиться запятая, табуляция и перевод строки. Каждый из них ломает простой парсер. Если такие данные возможны, уточните, поддерживает ли инструмент экранирование, или заранее замените разделители в тексте.
Табуляция при копировании
Вставка из таблицы в текстовый редактор часто превращает табуляцию в пробелы или наоборот. После копирования проверьте файл в текстовом виде. Невидимые различия обнаруживаются только так.
Замена разделителей
Иногда проще заменить проблемный символ в тексте на безопасный, чем полагаться на кавычки. Например, перечисление через запятую заменить на точку с запятой. Это меняет данные, поэтому решение нужно фиксировать в описании.
Пустые поля
Два разделителя подряд означают пустое поле. Не путайте с отсутствующей колонкой. При импорте такие поля иногда схлопываются. Проверьте строку с известными пропусками и убедитесь, что структура сохранилась.
Заголовки с пробелами
Имена столбцов с пробелами и знаками препинания неудобны для формул и скриптов. Используйте короткие имена без пробелов. Человекочитаемые названия можно вывести отдельно, в описании или в отчёте.
Кодировка
TSV тоже зависит от кодировки. Табуляция — однобайтовый символ, поэтому она обычно переживает смену кодировки, а текст нет. Проверьте русские буквы так же, как в CSV: импортируйте и посмотрите на результат.
Проверка структуры
После импорта посмотрите на число столбцов в нескольких строках. Если оно различается, значит, где-то не сработало экранирование. Найдите строку по номеру и проверьте её в текстовом редакторе.
Инструменты
Электронные таблицы и языки анализа различаются в поддержке кавычек и переводов строк. Уточните поведение своего инструмента на маленьком тестовом файле с проблемными полями. Это быстрее, чем разбираться на полном наборе.
Обмен
При передаче файла укажите разделитель, кодировку и правила экранирования. Если файл создан скриптом, приложите короткое описание. Коллега не должен восстанавливать формат по догадкам.
Типичные ошибки
Полагаться на кавычки без проверки, копировать таблицу с превращением табуляции в пробелы, давать столбцам имена с пробелами, игнорировать разное число столбцов в строках. Каждая ошибка приводит к тихому искажению.
Когда выбрать TSV
Когда в данных много текста с запятыми, а инструменты поддерживают табуляцию стабильно. Если же текст часто содержит табуляцию, лучше CSV с корректным экранированием.
Итог
TSV удобен для текстов с запятыми, но требует дисциплины: экранирование, проверка числа столбцов и явные договорённости при обмене.
Почему табуляция опасна
Символ табуляции невидим в большинстве редакторов. Один лишний символ внутри поля создаёт новый столбец, и структура съезжает без всякого предупреждения. Ошибку замечают уже в анализе, когда суммы не сходятся, и ищут её далеко не там, где она возникла.
Проверка в текстовом редакторе
Откройте файл с включённым отображением невидимых символов. Табуляция обычно показывается стрелкой, перевод строки — значком. Так видно, где заканчиваются поля и не попал ли разделитель внутрь текста. Это самый быстрый способ найти проблему.
Замена табуляции в тексте
Если поле содержит табуляцию, её удаляют или заменяют пробелом до экспорта. Проверьте, что замена не склеила слова и не изменила смысл. Решение фиксируйте в описании, чтобы при следующей выгрузке повторить его осознанно.
Единый разделитель во всём наборе
Не смешивайте табуляцию и запятые в одном файле, даже если кажется, что программа разберётся. Разные строки с разными разделителями читаются непредсказуемо. Единый разделитель — условие, без которого проверка структуры теряет смысл.
Как проверить число столбцов
После импорта посчитайте, в скольких строках число столбцов отличается от ожидаемого. Если такие строки есть, найдите их и посмотрите в редакторе. Обычно причина — неэкранированный разделитель или лишний символ в одном поле.
Что делать с длинными текстами
Открытые ответы и комментарии чаще всего содержат запятые, кавычки и переводы строк. Для таких полей особенно важно экранирование. Если инструмент не справляется, вынесите тексты в отдельный файл, связанный идентификатором.
Чек-лист
- Разделитель один на весь файл.
- Поля с табуляцией и переводом строки обработаны.
- Кавычки внутри полей удвоены.
- Число столбцов проверено в каждой строке.
- Табуляция не превратилась в пробелы при копировании.
- Имена столбцов без пробелов и знаков препинания.
- Правила экранирования указаны при передаче файла.
Частые вопросы
Чем TSV лучше CSV?
Запятые в тексте не ломают поля.
Когда нужны кавычки?
Когда разделитель встречается внутри поля.
Что важнее всего?
Проверить число столбцов в каждой строке.
Пример
Файл с адресами открывался корректно, а файл с комментариями разъехался: в одном поле была запятая без кавычек. После добавления экранирования и проверки числа столбцов ошибка ушла.
Итог
TSV удобен для текстов с запятыми, но требует экранирования и проверки структуры после импорта.