Трудность определения типа файла текстовой базы данных
Таким образом, у 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 ответа
^
представляется разделителем поля и ~
разделитель строк. Обычно я ожидаю увидеть ,
и "в этих ролях, но выбор очень необычных символов означает, что строка как
Cheese, Bleu
не получит все трипы с парсером строк.
Это похоже на очень стандартный файл CSV (значение, разделенное запятыми), за исключением того, что символ разделителя полей был изменен с ,
в ^
и процитировать персонажа из "
в ~
К сожалению, я не знаком с Ruby, чтобы рекомендовать какую библиотеку использовать, но в Perl есть множество стандартных модулей CPAN, лучшие из которых позволяют вам настраивать как разделитель полей, так и символ кавычки для читателя CSV... Я ожидаю В Ruby тоже должно быть что-то похожее - если это так, то вам повезло!