Leggere file CSV in Rust
In questo articolo vediamo come leggere un file CSV in Rust.
Ci serviranno due librerie:
- serde per la deserializzazione (non è obbligatorio, ma ve lo consgilio)
- csv
Possiamo installarle con cargo:
cargo add serde csv
Qui sotto un estrapolato del file CSV:
CODICE,RAG_SOC
1,SOLARIS BUS & COACH sp. z o.o.
2,ROMANA DIESEL S.P.A.
3,NGV BUS S.R.L.
4,CEDISS SRL
Come vedete i "titoli" delle colonne sono in maiuscolo.
Quindi il nostro codice sarà così:
use csv::Reader;
use serde::Deserialize;
use std::error::Error;
#[derive(Deserialize)]
struct Record {
CODICE: String,
RAG_SOC: String,
}
fn main() -> Result<(), Box<dyn Error>> {
let str_file = "/home/fermat/TEST/test.csv";
let mut reader = Reader::from_path(str_file)?;
for result in reader.deserialize() {
let record: Record = result?;
println!("CODICE: {:?}; RAG SOC: {:?}", record.CODICE, record.RAG_SOC);
}
Ok(())
}
Enjoy!
rust csv serde
Commentami!