返回顶部
首页 > 资讯 > 精选 >如何在 Go 中将 csv 文件规范化 (1:N) 为地图?
  • 905
分享到

如何在 Go 中将 csv 文件规范化 (1:N) 为地图?

2024-02-06 11:02:05 905人浏览 安东尼
摘要

问题内容 我正在尝试规范化 csv 文件的结构,如下所示: name, note 'joe', 5 'joe', 3 'ashley', 1 'ashley', 7 'ashley',

问题内容

我正在尝试规范化 csv 文件的结构,如下所示:

name, note
'joe', 5
'joe', 3
'ashley', 1
'ashley', 7
'ashley', 4

到一个地图,在读取该文件后,将减少为:

map [string][]string{
    "joe" = {5, 3},
    "ashley" = {1, 7, 4},
}

最好的方法是什么?

我是 Go 新手,我创建的代码是这样的:

func main() {
    fileName := "new"
    xlsx, err := excelize.OpenFile(fileName + ".xlsx")
    if err != nil {
        fmt.Println(err)
        return
    }
    rows, err := xlsx.Rows("Sheet1")
    if err != nil {
        fmt.Print(err)
    }

    for rows.Next() {

        column, err := rows.Columns()
        if err != nil {
            println(err)

        }

        for i := 0; i < 1; i++ {
            if i == i {
                m := map[string][]string{
                    column[i]: []string{column[1]},
                }
                fmt.Printf("%v\n", m)
            }

        }
    }
}


正确答案


它应该非常简单:

m := map[string][]string{}
for rows.Next() {
    column, err := rows.Columns()
    if err != nil {
        panic(err)
    }
    if len(column) < 2 {
        panic("row too short")
    }
    m[column[0]] = append(m[column[0]], column[1])
}

以上就是如何在 Go 中将 csv 文件规范化 (1:N) 为地图?的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 如何在 Go 中将 csv 文件规范化 (1:N) 为地图?

本文链接: https://lsjlt.com/news/561415.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作