0

所以美国农业部有一些关于食物的一般营养成分的奇怪数据库,很自然我们会窃取它用于我们的应用程序。但无论如何,行的格式如下:

~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 来查询这些数据。

此外,我很难提出这个问题,所以我把它做成了一个社区维基,这样我们都可以参与进来!

4

2 回答 2

3

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

不幸的是,我不熟悉 Ruby 来推荐使用哪个库,但是在 Perl 中有一大堆标准 CPAN 模块,其中最好的模块允许您配置 CSV 阅读器的字段分隔符和引号字符......我希望Ruby 也应该有类似的东西——如果是这样,那么你很幸运!

于 2010-05-29T02:19:58.893 回答
1

^似乎是一个字段分隔符和~一个字符串分隔符。通常我希望,在这些角色中看到 and ",但是选择非常不常见的字符意味着像这样的字符串

Cheese, Bleu

字符串解析器不会让一切变得迷幻。

于 2010-05-29T02:16:26.123 回答