将地图写入csv

时间:2017-11-27 18:11:26

标签: csv go

我一直试图弄清楚如何正确地将地图写入csv文件而没有运气。

我基本上有一个查询sql数据库的程序,我将其中一个返回值存储为地图的关键字,然后将一个字符串片段存储给与之相关的数据返回,例如地图将是:

var m = make(map[string][]string)

m['test1'] = [5, 4, 3]

所以将它写入csv将是

  

test1,5,4,3

它打印到csv就像列表/切片一样,我将它存储在地图中,以便更容易在其他地方构建动态查询。

我尝试过使用for循环:

for key, value := range m{
    writer.Write(key)
    writer.Write(value)
}

但我收到以下错误:

  

不能在key.Write

的参数中使用key(类型字符串)作为类型[]字符串

我在这里做了很多谷歌搜索和搜索,似乎无法找到正确的方法。

1 个答案:

答案 0 :(得分:5)

  

Package csv

     

func (*Writer) Write

func (w *Writer) Write(record []string) error
     

Writer将单个CSV记录与w一起写入   引用。记录是一串字符串,每个字符串为一个   字段。

  

错误:无法在参数中使用键(string)作为类型[]string   writer.Write

  

"我已经在这里进行了很多谷歌搜索和搜索。"

要解决此问题,请阅读Write的文档,并按照错误消息中的说明进行操作,您的类型为stringWrite需要类型[]string。例如,

for key, value := range m {
    r := make([]string, 0, 1+len(value))
    r = append(r, key)
    r = append(r, value...)
    err := writer.Write(r)
    if err != nil {
        // handle error
    }
}
writer.Flush()