So speichern Sie einen Hash in einer CSV
Ich bin neu in ruby, also bitte verzeihen Sie die noobishness.
Ich habe eine CSV mit zwei Spalten. Eine für Tier Namen und eine für die Tierart.
Ich habe ein hash mit allen die Schlüssel, tierischen Namen und die Werte werden dem Tier geben. Ich möchte schreiben, den hash zu der CSV-Datei ohne Verwendung fasterCSV. Ich dachte daran, einige Ideen, was wäre das einfachste.. hier ist das grundlegende layout.
require "csv"
def write_file
h = { 'dog' => 'canine', 'cat' => 'feline', 'donkey' => 'asinine' }
CSV.open("data.csv", "wb") do |csv|
csv << [???????????]
end
end
Wenn ich die Datei geöffnet, gelesen habe ich ihn geöffnet File.open("blabla.csv", headers: true)
Wäre es möglich zurück zu schreiben, um die Datei auf die gleiche Weise?
InformationsquelleAutor der Frage TheLegend | 2011-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Folge:
InformationsquelleAutor der Antwort Sławosz
Wenn Sie möchten, dass die Spaltenüberschriften und Sie haben mehrere hashes:
(getestet auf Ruby 1.9.3-p429)
InformationsquelleAutor der Antwort Joe Goggins
Ich denke, die einfachste Lösung zu deiner ursprünglichen Frage:
Mit mehreren hashes dass alle den gleichen Schlüssel:
InformationsquelleAutor der Antwort Tom Rossi
CSV kann, einen hash in beliebiger Reihenfolge, ausschließen von Elementen, und lassen eine params nicht im
HEADERS
Dies macht die Zusammenarbeit mit der CSV-Klasse flexibler und lesbarer.
InformationsquelleAutor der Antwort rudolph9
Ich habe versucht, die Lösungen hier, aber hab ein Falsches Ergebnis (Werte in den falschen Spalten), da meine Quelle ist eine LDIF-Datei, nicht immer hat man alle Werte für einen Schlüssel. Ich endete mit den folgenden.
Ersten, beim Aufbau der hash-ich erinnere mich an den Schlüssel in einem separaten array die ich erweitern mit den Tasten, die nicht schon gibt.
Die wichtigste Zeile ist hier
keys = keys.concat(record.keys).uniq
erweitert das array der Schlüssel, wenn neue Schlüssel (Header) zu finden sind.Nun das wichtigste: konvertieren von unseren hashes, um eine CSV -
InformationsquelleAutor der Antwort peter
Versuchen Sie dies:
InformationsquelleAutor der Antwort Santosh Sharma
Können, haben wir einen hash,
Den oben hash_1 mit Tasten, wie manche id 1,2,.., und Werte, die sind wieder hash mit einigen Tasten da (:rev :d_odr, :d_price).
Nehmen wir an, wir möchten eine CSV-Datei mit überschriften,
Dann eine neue array-für jeden Wert von hash_1 und legen Sie Sie in CSV-Datei,
Nun sind Sie mit design_performance_data_temp.csv-Datei gespeichert, die in Ihrem entsprechenden Verzeichnis.
Obigen code kann noch weiter optimiert werden.
InformationsquelleAutor der Antwort shubham mishra