Difficoltà a determinare il tipo di file di file di database di testo
-
05-10-2019 - |
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!
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