Domanda

Quindi, l'USDA ha qualche base di dati strana di fatti nutrizione generale sul cibo, e ben naturalmente stiamo andando a rubare per l'uso nella nostra app. Ma tant'è il formato delle linee è simile al seguente:

~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

Con quelli ~ dispari e ^ separare i valori, Manca anche una riga di intestazione, ma questo è ok, posso capirlo dal altre cose sul loro sito: http://www.ars.usda.gov/Services/docs.htm?docid=8964

Qualsiasi aiuto sarebbe grande! Se è importante che stiamo facendo un'API aperta / libera con Ruby per interrogare questi dati.

Inoltre sto avendo un momento difficile in posa a questa domanda così ho fatto un wiki comunità modo che tutti possano intonazione in!

È stato utile?

Soluzione

^ sembra essere un delimitatore di campo e ~ un delimitatore di stringa. Normalmente mi aspetto di vedere , e "in quei ruoli, ma la scelta dei personaggi mezzo molto raro che una stringa come

Cheese, Bleu

non sarà possibile ottenere tutte trippy con il parser di stringa.

Altri suggerimenti

Questo appare come un CSV molto standard (Comma Separated Value) di file, tranne il carattere separatore di campo è stato cambiato da , a ^ e citazione personaggio " a ~

Purtroppo, io non sono a conoscenza di Ruby per raccomandare quale libreria da usare, ma in Perl c'è una barca di moduli CPAN standard, la migliore delle quali consentono di configurare sia separatore di campo e il carattere preventivo di un lettore CSV ... mi aspetterei di Ruby dovrebbe avere qualcosa di simile, come pure -! se è così, siete fortunati

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top