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) } }
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!