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,25Utdata 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,25Denne 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.