Clojure:
Werken met CSV
Hoe?
Laten we onze mouwen opstropen en een CSV-bestand parsen in Clojure.
(require '[clojure.data.csv :as csv])
(require '[clojure.java.io :as io])
(with-open [reader (io/reader "data.csv")]
(let [data (csv/read-csv reader)]
(doseq [row data]
(println row))))
Voorbeelduitvoer voor een CSV met “naam,leeftijd” zou zijn:
["John" "30"]
["Jane" "25"]
["Doe" "40"]
Om gegevens naar een CSV-bestand te schrijven:
(with-open [writer (io/writer "output.csv")]
(csv/write-csv writer [["naam" "leeftijd"]
["John" "30"]
["Jane" "25"]
["Doe" "40"]]))
Dit schrijft de gegeven rijen naar output.csv
.
Diepere Duik
De omgang met CSV in Clojure is vrij eenvoudig vergeleken met andere talen - geen extra franje. Historisch gezien maakte de eenvoud van CSV het wijdverspreid voor gegevensuitwisseling, en dateert het van voor vele gegevensformaten. Alternatieven zijn onder andere JSON, XML, of YAML, maar CSV wint waar eenvoud of compatibiliteit met spreadsheets sleutel is. De clojure.data.csv
bibliotheek biedt het gereedschap voor CSV-parsing en -schrijven, gebouwd op de efficiënte I/O-stromen van Java voor goede prestaties.
Zie Ook
- De CSV-bibliotheek van Clojure: https://github.com/clojure/data.csv
- Lees meer over CSV: https://tools.ietf.org/html/rfc4180
- Voor een duik in Clojure: https://clojure.org/