首页 > 后端开发 > Golang > 如何有效地将 CSV 数据解组到 Go 结构中?

如何有效地将 CSV 数据解组到 Go 结构中?

Barbara Streisand
发布: 2024-12-11 15:32:17
原创
182 人浏览过

How Can I Efficiently Unmarshal CSV Data into Go Structs?

将 CSV 记录解组到 Go 结构中

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板