Maison > développement back-end > Golang > Comment normaliser (1:N) un fichier csv en une carte dans Go ?

Comment normaliser (1:N) un fichier csv en une carte dans Go ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2024-02-06 10:06:07
avant
819 Les gens l'ont consulté

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

Contenu de la question

J'essaie de normaliser la structure d'un fichier csv comme suit :

name, note
'joe', 5
'joe', 3
'ashley', 1
'ashley', 7
'ashley', 4
Copier après la connexion

à une carte, après lecture du fichier, sera réduit à :

map [string][]string{
    "joe" = {5, 3},
    "ashley" = {1, 7, 4},
}
Copier après la connexion

Quelle est la meilleure façon ?

Je suis nouveau, le code que j'ai créé est comme ceci :

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)
            }

        }
    }
}
Copier après la connexion


Bonne réponse


Cela devrait être très simple :

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])
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal