Dans Go, il existe un besoin courant de désérialiser les enregistrements CSV dans des structures personnalisées. Bien que le package "encoding/csv" fournisse une lecture CSV de base, il nécessite une analyse manuelle et une conversion en structures. Heureusement, il existe des solutions alternatives qui simplifient ce processus.
L'une de ces solutions est gocarina/gocsv, qui suit la même approche que le package "encoding/json" pour gérer les structures personnalisées. Il permet également un marshalling et un démarshalling personnalisés pour des types spécifiques.
Prenons l'exemple :
type Client struct { Id string `csv:"client_id"` Name string `csv:"client_name"` Age string `csv:"client_age"` } func main() { in, err := os.Open("clients.csv") if err != nil { panic(err) } defer in.Close() clients := []*Client{} if err := gocsv.UnmarshalFile(in, &clients); err != nil { panic(err) } for _, client := range clients { fmt.Println("Hello, ", client.Name) } }
Ici, gocsv.UnmarshalFile remplit directement la tranche clients avec des structures client désérialisées. Cela simplifie le processus de désorganisation, le rendant plus intuitif et plus pratique que l'utilisation des méthodes standard « encodage/csv ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!