Haskell:
Arbeide med CSV
Hvordan:
I Haskell kan behandling av CSV-filer oppnås ved å bruke cassava
-biblioteket, et av de populære tredjepartsbibliotekene for dette formålet. Nedenfor er eksempler som viser hvordan man leser fra og skriver til CSV-filer ved hjelp av cassava
.
1. Lese en CSV-fil:
Først, sørg for at du har cassava
installert ved å legge det til i prosjektets cabal-fil eller ved å bruke Stack.
Her er et enkelt eksempel for å lese en CSV-fil og skrive ut hver post. Vi antar at CSV-filen har to kolonner: navn og alder.
{-# LANGUAGE OverloadedStrings #-}
import Data.Csv
import qualified Data.ByteString.Lazy as BL
import qualified Data.Vector as V
main :: IO ()
main = do
csvData <- BL.readFile "people.csv"
case decode NoHeader csvData of
Left err -> putStrLn err
Right v -> V.forM_ v $ \(navn, alder) ->
putStrLn $ navn ++ " er " ++ show (alder :: Int) ++ " år gammel."
Antar at people.csv
inneholder:
John,30
Jane,25
Utdata vil være:
John er 30 år gammel.
Jane er 25 år gammel.
2. Skrive en CSV-fil:
For å opprette en CSV-fil, kan du bruke encode
-funksjonen fra cassava
.
Slik kan du skrive en liste med poster til en CSV-fil:
{-# LANGUAGE OverloadedStrings #-}
import Data.Csv
import qualified Data.ByteString.Lazy as BL
main :: IO ()
main = BL.writeFile "output.csv" $ encode [("John", 30), ("Jane", 25)]
Etter å ha kjørt dette programmet, vil output.csv
inneholde:
John,30
Jane,25
Denne korte introduksjonen til arbeid med CSV-filer i Haskell ved hjelp av cassava
-biblioteket viser hvordan å lese fra og skrive til CSV-filer, noe som gjør datahåndteringsoppgaver mer tilgjengelige for de som er nye til språket.