Heim > Backend-Entwicklung > Golang > Wie kann ich CSV-Daten effizient in Go-Strukturen entpacken?

Wie kann ich CSV-Daten effizient in Go-Strukturen entpacken?

Barbara Streisand
Freigeben: 2024-12-11 15:32:17
Original
202 Leute haben es durchsucht

How Can I Efficiently Unmarshal CSV Data into Go Structs?

CSV-Datensätze in Go-Strukturen entpacken

In Go besteht häufig die Notwendigkeit, CSV-Datensätze in benutzerdefinierte Strukturen zu deserialisieren. Während das Paket „encoding/csv“ grundlegendes CSV-Lesen ermöglicht, erfordert es manuelles Parsen und Konvertieren in Strukturen. Glücklicherweise gibt es alternative Lösungen, die diesen Prozess vereinfachen.

Eine solche Lösung ist gocarina/gocsv, die den gleichen Ansatz wie das Paket „encoding/json“ für die Handhabung benutzerdefinierter Strukturen verfolgt. Es ermöglicht auch benutzerdefiniertes Marshalling und Unmarshalling für bestimmte Typen.

Betrachten Sie das Beispiel:

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)
    }
}
Nach dem Login kopieren

Hier füllt gocsv.UnmarshalFile den Client-Slice direkt mit deserialisierten Client-Strukturen. Dies vereinfacht den Unmarshalling-Prozess und macht ihn intuitiver und bequemer als die Verwendung standardmäßiger „Kodierungs-/CSV“-Methoden.

Das obige ist der detaillierte Inhalt vonWie kann ich CSV-Daten effizient in Go-Strukturen entpacken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage