难以确定文本数据库文件的文件类型

时间:2010-05-29 02:12:08

标签: data-formats

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

~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 < / p>

任何帮助都会很棒!如果重要的话,我们正在用Ruby创建一个开放/免费的API来查询这些数据。

此外,我很难提出这个问题,所以我把它变成了一个社区维基,所以我们都可以投入!

2 个答案:

答案 0 :(得分:3)

这看起来像一个非常标准的CSV(逗号分隔值)文件,但字段分隔符字符已从,更改为^并将字符从"引用到{{1} }

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

答案 1 :(得分:1)

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

这样的字符串
Cheese, Bleu

不会使用字符串解析器获得所有的麻烦。