Трудность определения типа файла текстовой базы данных - PullRequest
0 голосов
/ 29 мая 2010

Итак, у USDA есть какая-то странная база данных общих фактов питания о еде, и, естественно, мы собираемся украсть ее для использования в нашем приложении. Но в любом случае формат строк выглядит следующим образом:

~01001~^~0100~^~Butter, salted~^~BUTTER,WITH SALT~^~~^~~^~Y~^~~^0^~~^6.38^4.27^8.79^3.87
~01002~^~0100~^~Butter, whipped, with salt~^~BUTTER,WHIPPED,WITH SALT~^~~^~~^~Y~^~~^0^~~^6.38^4.27^8.79^3.87
~01003~^~0100~^~Butter oil, anhydrous~^~BUTTER OIL,ANHYDROUS~^~~^~~^~Y~^~~^0^~~^6.38^4.27^8.79^3.87
~01004~^~0100~^~Cheese, blue~^~CHEESE,BLUE~^~~^~~^~Y~^~~^0^~~^6.38^4.27^8.79^3.87

С этими нечетными ~ и ^, разделяющими значения. В нем также отсутствует строка заголовка, но это нормально, я могу понять это из других материалов на их сайте: http://www.ars.usda.gov/Services/docs.htm?docid=8964

Любая помощь будет отличной! Если это имеет значение, мы создаем открытый / бесплатный API с Ruby для запроса этих данных.

Кроме того, мне сложно задавать этот вопрос, поэтому я сделал его вики-сообществом, чтобы мы могли принять участие!

Ответы [ 2 ]

3 голосов
/ 29 мая 2010

Это выглядит как очень стандартный файл CSV (значение, разделенное запятыми), за исключением того, что символ разделителя полей был изменен с , на ^ и символ кавычки с " на ~

К сожалению, я не знаком с Ruby, чтобы рекомендовать какую библиотеку использовать, но в Perl есть множество стандартных модулей CPAN, лучшие из которых позволяют вам настраивать как разделитель полей, так и символы кавычек для читателя CSV ... Я ожидаю, что у Руби тоже должно быть что-то подобное - если это так, то вам повезло!

1 голос
/ 29 мая 2010

^ представляется разделителем поля, а ~ - разделителем строки. Обычно я ожидал бы увидеть , и "в этих ролях, но выбор очень необычных символов означает, что строка типа

Cheese, Bleu

не получит все трипы с анализатором строк.

...