1 回答
TA贡献1875条经验 获得超3个赞
我建议阅读您的 CSV 并为您阅读的每条记录创建一个[]interface{},将其附加[]interface{}到行集合 ( [][]interface{}),然后将行传递给 pgx。
var rows [][]interface{}
// read header outside of CSV "body" loop
header, _ := reader.Read()
// inside your CSV reader "body" loop...
row := make([]interface{}, len(record))
// use your logic/gate-keeping from here
row[0] = record[0] // timestamp
// convert the floats
for i := 1; i < len(record); i++ {
val, _ := strconv.ParseFloat(record[i], 10)
row[i] = val
}
rows = append(rows, row)
...
copyCount, err := conn.CopyFrom(
pgx.Identifier{"floaty-things"},
header,
pgx.CopyFromRows(rows),
)
我无法模拟整个程序,但这里有一个将 CSV 转换为 https://go.dev/play/p/efbiFN2FJMi 的[][]interface{}完整演示。
并查看文档https://pkg.go.dev/github.com/jackc/pgx/v4。
- 1 回答
- 0 关注
- 455 浏览
添加回答
举报
