Closed5
goでcsvを読み込む
フォーマットはsjis CRLFなのでそれをまずmac環境で作成することから始める
windows用のcsvファイルを作成できるアプリ
脱線
go get はdocker内でやる必要がある
いつも忘れるコマンド
docker exec -it {CONTAINER_ID} /bin/bash
csv飛ばすcurl
curl -X POST -F csvfile=@ファイルパス localhost:3500/post | jq
実際読み込み成功した関数
func csvMapping(c *gin.Context) ([]string, error) {
file, _, err := c.Request.FormFile("csvfile")
reader := csv.NewReader(transform.NewReader(file, japanese.ShiftJIS.NewDecoder()))
reader.LazyQuotes = true
reader.TrimLeadingSpace = true
var inputDatas []string
for {
var oneLine []string
var csvData []string
// 行毎のデータ取得してlineに格納
oneLine, err = reader.Read()
if err != nil {
if err == io.EOF {
break
} else {
return nil, err
}
}
//1行から要素を取得
for _, v := range oneLine {
csvData = append(csvData, v)
}
if len(csvData) != 4 {
return nil, err
}
inputDatas = append(inputDatas,Object{
data1: csvData[0],
data2: csvData[1],
data3: csvData[2],
data4: csvData[3],
})
}
return inputDatas, nil
}
このスクラップは2021/08/20にクローズされました