La difficulté à déterminer le type de fichier de fichier de base de données texte

StackOverflow https://stackoverflow.com/questions/2933482

  •  05-10-2019
  •  | 
  •  

Question

Ainsi, l'USDA a une base de données bizarre des faits de nutrition généraux sur la nourriture, et bien sûr, nous allons voler pour l'utiliser dans notre application. Mais de toute façon le format des lignes est comme suit:

~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

Avec les ~ impair et ^ séparant les valeurs, Il manque également une ligne d'en-tête mais c'est ok, je peux comprendre cela de l'autre des choses sur leur site: http://www.ars.usda.gov/Services/docs.htm?docid=8964

Toute aide serait génial! S'il importe que nous faisons une API ouverte / gratuit avec Ruby pour interroger ces données.

En outre, je suis un moment difficile posant cette question, donc je l'ai fait un wiki communautaire donc nous avons tous pas possible dans!

Était-ce utile?

La solution

^ semble être un séparateur de champ et ~ un séparateur de chaîne. Normalement, je vous attendriez à voir , et «dans ces rôles, mais le choix des moyens de caractères très rare qu'une chaîne comme

Cheese, Bleu

n'obtenir tous trippy avec l'analyseur de chaîne.

Autres conseils

Cela ressemble à un fichier CSV très standard (valeurs séparées par des virgules), à l'exception du caractère séparateur de champ a été changé de , à caractère ^ et citation de " à ~

Malheureusement, je ne suis pas familier avec Ruby de recommander quelle bibliothèque à utiliser, mais en Perl il y a un bateau plein de modules standards de CPAN le meilleur de qui vous permettent de configurer à la fois séparateur de champ et le caractère de citation d'un lecteur CSV ... J'attendre Ruby devrait avoir quelque chose de similaire aussi bien - si oui, vous avez de la chance

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top