1 回答
TA貢獻1799條經(jīng)驗 獲得超6個贊
雖然數(shù)據(jù)中的分隔符是 ,但包默認(rèn)使用 。;,
因此,我們需要將包配置為使用不同的分隔符。根據(jù)文檔,這可以通過可自定義的CSV閱讀器實現(xiàn):
gocsv.SetCSVReader(func(in io.Reader) gocsv.CSVReader {
r := csv.NewReader(in)
r.Comma = ';' // This is our separator now
return r
})
這將配置包中的所有功能。
您的代碼應(yīng)如下所示以包含更改:
package main
import (
"encoding/csv"
"fmt"
"io"
"log"
"github.com/gocarina/gocsv"
)
// GeoAdresseCsv is a test structcd
type GeoAdresseCsv struct {
ID int `csv:"id"`
IDBan string `csv:"id_ban"`
}
func main() {
gocsv.SetCSVReader(func(in io.Reader) gocsv.CSVReader {
r := csv.NewReader(in)
r.Comma = ';' // This is our separator now
return r
})
var adresseDB []GeoAdresseCsv
stringCsv := `id;id_ban
2908743;28009_0019_00008`
err := gocsv.UnmarshalString(stringCsv, &adresseDB)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", adresseDB)
}
現(xiàn)在輸出是預(yù)期值:
[{ID:2908743 IDBan:28009_0019_00008}]
您可以在此處在線運行它。
- 1 回答
- 0 關(guān)注
- 119 瀏覽
添加回答
舉報
