CSV-Datensätze in Go-Strukturen entpacken
Frage:
Wie kann ich Datensätze automatisch entpacken? aus einer CSV-Datei in Go-Strukturen?
Bedenken Sie zum Beispiel das folgende Go Struktur:
type Test struct { Name string Surname string Age int }
Und eine CSV-Datei mit Datensätzen:
John;Smith;42 Piter;Abel;50
Gibt es eine effiziente Möglichkeit, diese Datensätze in Strukturen zu entpacken, ohne jeden Datensatz manuell zu analysieren und Werte zuzuweisen?
Antwort:
Ja, unter Verwendung gocarina/gocsv ist eine wirksame Methode. Es ermöglicht die Erstellung von Unmarshalling- und Marshalling-Funktionen für benutzerdefinierte Typen, ähnlich der Funktionalität, die von „encoding/json“ bereitgestellt wird.
Beispiel:
type Client struct { Id string `csv:"client_id"` // .csv column headers 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) } }
Durch den Einsatz von gocsv Für den Client-Typ sind benutzerdefinierte Unmarshaller- und Marshaller-Funktionen definiert. Diese Funktionen übersetzen effektiv zwischen dem CSV-Format und Go-Strukturen und machen den Unmarshaling-Prozess unkompliziert und effizient.
Das obige ist der detaillierte Inhalt vonWie kann man CSV-Daten effizient in Go-Strukturen entmarshalieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!