我一直在尝试弄清楚如何正确地将 map 写入 csv 文件,但不幸的是。
我基本上有一个查询 sql 数据库的程序,我将其中一个返回值存储为映射的键,然后将一段字符串存储与其相关的数据,例如,映射将是:
var m = make(map[string][]string)
m['test1'] = [5, 4, 3]
所以将其写入 csv 将是
test1, 5, 4, 3
它像列表/slice 一样打印到 csv,我将它存储在 map 中,以便更容易在别处构建动态查询。
我曾尝试使用这样的 for 循环:
for key, value := range m{
writer.Write(key)
writer.Write(value)
}
但我收到以下错误:
cannot use key (type string) as type []string in argument to writer.Write
我在这里进行了大量的谷歌搜索和搜索,但似乎无法找到正确执行此操作的方法。
最佳答案
func (w *Writer) Write(record []string) error
Writer writes a single CSV record to w along with any necessary quoting. A record is a slice of strings with each string being one field.
error: cannot use key (type
string
) as type[]string
in argument towriter.Write
"I've done a lot of googling and searching here."
要解决这个问题,请阅读Write
的文档并按照错误消息中的说明进行操作,您有类型string
,Write
想要输入[]字符串
。例如,
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()
关于csv - 将 map 写入 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47517270/