因此,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

任何帮助都会很棒!如果重要的话,我们正在制作带有Ruby的开放/免费API来查询此数据。

此外,我很难提出这个问题,所以我已经成为社区Wiki,所以我们都可以参与进来!

有帮助吗?

解决方案

^ 似乎是字段定界符和 ~ 字符串定界符。通常我希望看到 , 和“在这些角色中,但是非常罕见的字符的选择意味着类似的字符串

Cheese, Bleu

不会用字符串解析器吸引所有麻烦。

其他提示

这看起来像一个非常标准的CSV(逗号分隔值)文件,除了字段分离器字符从 ,^ 和引用字符 "~

不幸的是,我不熟悉Ruby推荐使用哪个库,但是在Perl中,有一系列标准CPAN模块,其中最好的是您可以配置CSV阅读器的现场分离器和报价字符...我希望Ruby也应该有类似的东西 - 如果是的话,您很幸运!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top