在 Go 中,通常需要將 CSV 記錄反序列化為自訂結構。雖然“encoding/csv”套件提供了基本的 CSV 讀取,但它需要手動解析並轉換為結構。幸運的是,有一些替代解決方案可以簡化此過程。
其中一個解決方案是 gocarina/gocsv,它遵循與處理自訂結構的「encoding/json」套件相同的方法。它還允許對特定類型進行自訂編組和解組。
考慮範例:
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) } }
這裡,gocsv.UnmarshalFile 直接使用反序列化的 Client 結構填充客戶端切片。這簡化了解組過程,使其比使用標準“編碼/csv”方法更加直觀和方便。
以上是如何有效地將 CSV 資料解組到 Go 結構中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!