2010-03-09 3 views
6

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

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

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

+0

Это действительно зависит. С какими ошибками вы сталкиваетесь? –

+0

В основном умные цитаты из Word и случайные символы акцента или специальные символы из Word или HTML. Иногда бродячая пуля. Просто нормальный материал, который вы получаете, когда вставляете несколько абзацев текста в ячейку Excel. –

ответ

1

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

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

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

+0

Большое спасибо! Ну попробуйте. –

Смежные вопросы