我一直试图弄清楚如何正确地将地图写入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(类型字符串)作为类型[]字符串
我在这里做了很多谷歌搜索和搜索,似乎无法找到正确的方法。
答案 0 :(得分:5)
func (w *Writer) Write(record []string) error
Writer将单个CSV记录与w一起写入 引用。记录是一串字符串,每个字符串为一个 字段。
错误:无法在参数中使用键(
string
)作为类型[]string
writer.Write
"我已经在这里进行了很多谷歌搜索和搜索。"
要解决此问题,请阅读Write
的文档,并按照错误消息中的说明进行操作,您的类型为string
,Write
需要类型[]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()