Импорт файла CSV может быть неприятным. Мы все боролись с импортом и повторным импортом файла, который все еще содержит надоедливые, трудно идентифицируемые проблемы. Хотя ошибки импорта CSV могут сильно различаться, мы заметили, что люди, вероятно, будут сталкиваться с одной и той же горсткой ошибок синтаксического анализа CSV снова и снова. Если вы научитесь выявлять и устранять эти ошибки, импорт данных может занять значительно меньше времени и энергии… чего мы все хотели бы иметь больше.

Мы здесь, чтобы помочь, используя как пять советов ниже, так и наш удаленный браузер для файлов CSV в облаке. CSV Studio предлагает надежный синтаксический анализатор и автоматическое исправление ошибок для несовместимых и плохо отформатированных файлов CSV. Он позволяет удаленно просматривать файлы на сервере данных, автоматически выявлять и исправлять ошибки и экспортировать файл в базу данных без ошибок синтаксического анализа. Смотрите демонстрации, чтобы узнать больше.

# 1 - Нераспознанный Юникод / ​​недопустимая кодовая точка

Даже если это не самая распространенная проблема, это определенно первая проблема, с которой вы можете столкнуться при работе с CSV. Если вы используете python для обработки данных, эта проблема проявится очень быстро, поскольку ввод-вывод python вызовет исключение при первых признаках проблемы. Многие парсеры не могут отображать или обрабатывать текстовое поле с недопустимым кодом, и вы вынуждены немедленно найти правильную кодировку, прежде чем пытаться выполнить любую дальнейшую диагностику.

Утилита, такая как команда «file -e», может работать, если для работы достаточно кодовых точек. Имейте в виду, что даже несмотря на то, что большая часть Интернета и персональных компьютеров принимает кодировку UTF-8 по умолчанию как должное, ISO-8859 Latin-1 так же хорош, как и любой другой, для данных, происходящих из базы данных.

# 2 - Текстовое поле с неэкранированным разделителем

Если разделитель столбцов отображается в текстовом поле без экранирования, это приведет к тому, что в строке появится дополнительный столбец. Обычно проблема возникает, когда в CSV-файле не используются двойные кавычки для заключения текстовых и числовых полей. Имена и адреса часто являются результатом ввода с клавиатуры, что означает, что они могут содержать все виды управляющих символов: /, \, |, ^, стрелки влево и вправо, возврат каретки, перевод строки и т. Д.

Рациональное решение - повторно экспортировать файл, заключив столбцы в двойные кавычки. Если это невозможно и возникает необходимость удалить лишние разделители, использование CSV Studio для исключения лишних разделителей может помочь вам сохранить рассудок.

# 3 - Строка в кавычках с неэкранированными двойными кавычками

Многие файлы CSV принимают разумные меры предосторожности, заключающие весь текст в кавычки. Неэкранированные двойные кавычки становятся потенциальной проблемой.

Случайное использование DJ ”S вместо DJ’S создает единственную проблему в файле с 600 000 строками. Эта проблема является фатальной: остальная часть файла отображается как одна строка. Наилучший подход - повторно экспортировать файл CSV и правильно избегать двойных кавычек. Если это необходимо сделать после того, как это произошло, в CSV Studio есть алгоритм для поиска лишних двойных кавычек, которые нужно экранировать.

# 4 - Нестандартные escape-символы

Файлы в стиле Unix часто используют обратную косую черту (\) внутри строк в кавычках, чтобы избежать разделителя строк.

›« В этой строке есть \ »

Однако вместо использования обратной косой черты CSV-файлы RFC-4180 удваивают разделитель строк в качестве механизма выхода.

›« В этой строке есть «» »

При кодировании файлов CSV следует последовательно применять один из этих механизмов выхода. Однако иногда встречаются файлы, в которых одновременно используются оба метода выхода. Это создает двусмысленность всякий раз, когда встречается escape-последовательность (см. Таблицу).

# 5 - Окончания строк CRLF / Dos

Концы строк не являются проблемой для CSV. Окончания строк в Windows и Unix различаются, и это, конечно, повлияет на файлы данных так же, как и на любой другой файл. Официальный разделитель строк RFC 4180 для CSV - это последовательность CRLF (символ возврата каретки, за которым следует символ новой строки). При обработке файла CSV с окончанием строки CRLF нередко обнаруживается нежелательный символ ^ M (или CR) в конце каждой строки. Это может даже вызвать проблемы с некоторыми парсерами CSV. Обработка файла с помощью утилиты dos2unix - стандартный способ решения этой проблемы.

У вас есть действительно плохой файл CSV, которым вы хотите поделиться? Заинтересованы в простом способе отображения и исправления этих проблем без использования самодельных сценариев регулярных выражений? Прочтите этот пост, посетите сайт или электронную почту.