[Ruby] So konvertieren Sie eine CSV-Datei in Yaml (Yml)

Verfahren

  1. Ruby-Standardbibliothek csv und [yml](https: //docs.ruby-lang) mit der erforderlichen Methode .org / ja / master / library / yaml.html) wird gelesen.
require 'csv'
require 'yaml'
  1. Wenn Sie "CSV.read (path_to_csv,: headers => true)" ausführen, wird eine Instanz der CSV :: table-Klasse zurückgegeben. Verwenden Sie die Methode "map", um Elemente (Instanzen der CSV :: Row-Klasse) einzeln zu extrahieren, und verwenden Sie die Methode "to_h", um die Elemente zu hashen. Da der Rückgabewert der Map-Methode ein Array ist, wird ein Array mit dem Hash als Element erstellt. Der Punkt ist, dass der Schlüsselname des Hash der Spaltenname von CSV ist, indem diesmal die Option : header => true hinzugefügt wird.
hash_arr = CSV.read(path_to_csv, :headers => true).map(&:to_h)
=>[{"region_id"=>"1", "country_id"=>"1", "region_name"=>"Hokkaido"}, {"region_id"=>"2", "country_id"=>"1", "region_name"=>"Präfektur Aomori"},...]
  1. Öffnen Sie die durch path angegebene Datei im Schreibmodus, konvertieren Sie das Array mit dem Hash 2 als Element in Yaml und speichern Sie es.
File.open(path_to_yaml, 'w') { |f| f.write(hash_arr.to_yaml) }

Nachtrag: Es scheint, dass das gleiche Schreiben unten gemacht werden kann. Danke für deinen Kommentar!

IO.write path_to_yaml, hash_arr.to_yaml

P.S Abgesehen davon habe ich eine Tabelle (Land oder Region) verwaltet, deren Wert in der Datenbank im Wesentlichen unverändert ist. Deshalb habe ich sie dieses Mal konvertiert, um sie mit ActiveYaml zu verwalten. Selbst wenn es von ActiveYaml verwaltet wird, ist es praktisch, da Sie die Tabelle wie ActiveRecord bedienen können (Klassenmethoden wie all und find können verwendet werden).

Recommended Posts

[Ruby] So konvertieren Sie eine CSV-Datei in Yaml (Yml)
So konvertieren Sie erb-Datei in haml
So lesen Sie Ihre eigene YAML-Datei (*****. Yml) in Java
Ruby: CSV :: Verwendung von Table Note
Ruby So konvertieren Sie zwischen Groß- und Kleinschreibung
Konvertieren Sie die CSV-Datei mit enum in eine Datensatzdatei mit fester Länge
Umgang mit TSV-Dateien und CSV-Dateien in Ruby
So konvertieren Sie eine Datei in ein Byte-Array in Java
Verwendung von Ruby return
In Ruby Leet-Zeichenfolge konvertieren
[Ruby] Wie man auskommentiert
Ruby: Wie man Cookies benutzt
So konvertieren Sie Java Base
So fordern Sie mit jMeter eine CSV-Datei als JSON an
[Ruby] So teilen Sie jede GraphQL-Abfrage in Dateien auf
[Einfach] So formatieren Sie Ruby erb-Dateien automatisch mit vsCode
Konvertieren Sie das Ruby-Objekt in das JSON-Format
Wie man in Ruby auf unbestimmte Zeit iteriert
So installieren Sie Ruby über rbenv
Verwendung von Ruby on Rails
So installieren Sie Bootstrap in Ruby
So konvertieren Sie LocalDate und Timestamp
[Anfänger] So löschen Sie NO FILE
Verwendung der Ruby-Inject-Methode
Wie man Ruby's irb ausführt (interaktiver Ruby)
[Java] Verwendung der File-Klasse
[Rails] Wie man von erb zu haml konvertiert
So fügen Sie eine JAR-Datei in ScalaIDE hinzu
[Core ML] So konvertieren Sie YOLO v3 in Core ML
Rubinlänge, -größe, -anzahl Verwendung
So erreichen Sie den Dateidownload mit Feign
[Ruby] Wie man Slice für Anfänger benutzt
So konvertieren Sie java.util.Date, java.sql.Date, LocalDate, ZonedDateTime
[Ruby on Rails] Verwendung von redirect_to
[Einfach] So aktualisieren Sie Ruby und Bundler
So teilen Sie eine Spring Boot-Nachrichtendatei
So erreichen Sie das Hochladen von Dateien mit Feign
Konvertieren Sie mit Ruby von JSON nach TSV und von TSV nach JSON
So komprimieren Sie eine JAVA-CSV-Datei und verwalten sie in einem Byte-Array
So finden Sie die Ursache des Ruby-Fehlers
[Android] So konvertieren Sie eine Zeichenfolge in resourceId
So sichern Sie von der Datenbank (DB) in die Seeds-Datei
[Ruby] Verwendung der gsub-Methode und der sub-Methode
So geben Sie die von Rails erstellte CSV in S3 aus
So konvertieren Sie einen Soliditätsvertrag in eine Java-Vertragsklasse
Wie man Code schreibt, der objektorientiertes Ruby denkt
So binden Sie mit einer Eigenschaftendatei in Spring Boot
[Ruby] So generieren Sie eine zufällige Alphabet-Zeichenfolge