Какой символ новой строки в моем CSV? - PullRequest
0 голосов
/ 03 июля 2018

Мы получаем .tar.gz файл от клиента каждый день, и я переписываю наш процесс импорта, используя SSIS. Один из первых шагов в моем процессе - распаковать файл .tar.gz, который я получаю с помощью скрипта Python.

После распаковки у нас остается несколько CSV-файлов, которые я затем импортирую в SQL Server. Кроме того, я загружаю с помощью CozyRoc DataFlow Task Plus.

Большинство моих CSV-файлов загружаются без проблем, но у меня есть пять файлов, которые не работают. Читая журнал, я вижу, что процесс читает заголовок и первую строку, как будто нет разделителя заголовка (то есть он пытается импортировать заголовок столбца как ColumnHeader1ColumnValue1

Я взял один из этих CSV, скопировал 5 верхних строк в Excel, использовал Text-To-Columns для разграничения данных, а затем сохранил их как новый файл CSV. Эта версия успешно импортирована .

Это заставляет меня думать, что каким-то образом оригинальный CSV не использует {CR}{LF} в качестве разделителя строк, но я не знаю, как проверить. Есть предложения?

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Видя, что у вас есть EmEditor, вы можете использовать EmEditor, чтобы найти персонажа eol двумя способами:

  1. Используйте Вид> Значение кода символа ... в конце строки, чтобы отобразить диалоговое окно с информацией о символе в текущей позиции.
  2. Перейдите в «Просмотр»> «Метки» и включите символы новой строки, а также CR и LF с разными метками, чтобы отобразить eol во время редактирования. LF отображается со стрелкой вниз, а CRLF - под прямым углом.

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

0 голосов
/ 03 июля 2018

В итоге я воспользовался предложением, которое прокомментировал @ vahdet , потому что у меня уже был установлен notepad ++. Я не могу найти ту же опцию в EmEditor, но она может существовать

Для тех, кому интересно, файлы используют {LF}, что согласуется с другими файлами. Мое расследование продолжается ...

...