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 關注
- 405 瀏覽
添加回答
舉報
