Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyahsiri Data CSV ke dalam Struktur Go dengan Cekap?

Bagaimana untuk Menyahsiri Data CSV ke dalam Struktur Go dengan Cekap?

Susan Sarandon
Susan Sarandonasal
2024-12-02 18:24:12440semak imbas

How to Efficiently Deserialize CSV Data into Go Structures?

Soalan:

Bagaimanakah saya boleh menyahsiri rekod CSV ke dalam struktur Go dengan cekap?

Pernyataan Masalah:

Andaikan anda mempunyai Ujian struktur Go tersuai, dengan medan Nama, Nama Keluarga dan Umur. Anda mempunyai fail CSV yang mengandungi rekod dalam format:

John;Smith;42
Piter;Abel;50

Bagaimanakah anda boleh menyahmarshal rekod ini secara automatik ke dalam contoh struktur Ujian, tanpa bergantung pada operasi penyahserikatan manual?

Jawapan:

Untuk memudahkan proses penyahserikatan, pertimbangkan untuk menggunakan perpustakaan gocarina/gocsv. gocsv menawarkan kefungsian yang serupa dengan pakej pengekodan/json tetapi khusus memenuhi data CSV.

Berikut ialah contoh menggunakan 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)
    }
}

Dalam contoh ini, gocsv mengendalikan proses penyahserikatan untuk anda, memudahkan penukaran rekod CSV ke dalam struktur Go. Anda boleh menggunakan teg medan tersuai dalam struct Test untuk menentukan pengepala lajur CSV bagi setiap medan, memastikan pemetaan yang tepat.

Atas ialah kandungan terperinci Bagaimana untuk Menyahsiri Data CSV ke dalam Struktur Go dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn