Как предварительно обработать данные CSV для FasterCSV?

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

Файлы CSV обычно создаются текстом вставки пользователей из своих веб-сайтов или из документов Microsoft Word, таким образом, не разумно ожидать, что никогда не будет нечетных символов как умные кавычки или диакритические знаки в данных. Также пользователи не собираются быть с готовностью способными определить, достаточно ли их данные идеально подходят для FasterCSV или нет. Мы должны найти способ зафиксировать его для них автоматически.

Существует ли хороший путь, или надежный инструмент для предварительной обработки данных CSV для фиксации каких-либо гнид в данных прежде, чем иметь драгоценный камень FasterCSV обрабатывают его?

6
задан Katherine Chalmers 9 March 2010 в 19:06
поделиться

2 ответа

Вы можете передать тип кодировки файла в опции FasterCSV при создании нового экземпляра парсера FasterCsv. (см. документацию здесь: http://fastercsv.rubyforge.org/classes/FasterCSV.html#M000018)

Установка на utf-8 или кодировку Microsoft поможет обойти большинство сомнительных дополнительных символов, позволяя ему действительно разобрать файл на необходимые строки... затем вы можете очистить строки по своему усмотрению.

В документации также есть кое-что о "конвертерах", которые можно передавать - хотя они больше предназначены для преобразования, скажем, числовых типов или типов дат, вы можете использовать их для gsub для сомнительных символов.

1
ответ дан 17 December 2019 в 04:45
поделиться

Попробуйте использовать библиотеку CSV в стандартной библиотеке. Это более снисходительно к искаженному CSV: http://ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html

3
ответ дан 17 December 2019 в 04:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: