Maison > développement back-end > Golang > Comment puis-je regrouper efficacement les données CSV dans des structures Go ?

Comment puis-je regrouper efficacement les données CSV dans des structures Go ?

Barbara Streisand
Libérer: 2024-12-11 15:32:17
original
182 Les gens l'ont consulté

How Can I Efficiently Unmarshal CSV Data into Go Structs?

Désérialisez les enregistrements CSV dans des structures Go

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)
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal