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

Wie deserialisiere ich CSV-Daten effizient in Go-Strukturen?

Susan Sarandon
Freigeben: 2024-12-02 18:24:12
Original
512 Leute haben es durchsucht

How to Efficiently Deserialize CSV Data into Go Structures?

Frage:

Wie kann ich CSV-Datensätze effizient in Go-Strukturen deserialisieren?

Problemstellung:

Angenommen, Sie haben einen benutzerdefinierten Go-Strukturtest mit den Feldern Name, Nachname und Alter. Sie verfügen über eine CSV-Datei mit Datensätzen im folgenden Format:

John;Smith;42
Piter;Abel;50
Nach dem Login kopieren

Wie können Sie diese Datensätze automatisch in Instanzen der Teststruktur entpacken, ohne auf manuelle Deserialisierungsvorgänge angewiesen zu sein?

Antwort:

Um den Deserialisierungsprozess zu vereinfachen, sollten Sie die Verwendung der Bibliothek gocarina/gocsv in Betracht ziehen. gocsv bietet eine ähnliche Funktionalität wie das Paket „encoding/json“, ist jedoch speziell auf CSV-Daten ausgerichtet.

Hier ist ein Beispiel für die Verwendung von gocsv:

package main

import (
    "fmt"
    "log"
    "os"

    "github.com/gocarina/gocsv"
)

type Test struct {
    Name    string `csv:"Name"`
    Surname string `csv:"Surname"`
    Age     int    `csv:"Age"`
}

func main() {
    // Open CSV file for reading
    in, err := os.Open("test.csv")
    if err != nil {
        log.Fatal(err)
    }
    defer in.Close()

    // Declare a slice to hold the Test structures
    var tests []Test

    // Unmarshal the CSV records into the Test structures
    if err := gocsv.UnmarshalFile(in, &tests); err != nil {
        log.Fatal(err)
    }

    // Print the unmarshaled data
    for _, test := range tests {
        fmt.Printf("Name: %s, Surname: %s, Age: %d\n", test.Name, test.Surname, test.Age)
    }
}
Nach dem Login kopieren

In diesem Beispiel übernimmt gocsv den Deserialisierungsprozess für Sie. Vereinfachung der Konvertierung von CSV-Datensätzen in Go-Strukturen. Sie können benutzerdefinierte Feldtags in der Teststruktur verwenden, um die CSV-Spaltenüberschriften für jedes Feld anzugeben und so eine genaue Zuordnung sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie deserialisiere ich CSV-Daten effizient in Go-Strukturen?. 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