gofakeitでサンプルデータを作ってみる
GolangでサンプルデータのCSVを作成したかったので、いくつかライブラリを検索したところ、「gofakeit」というライブラリを見つけました。
GitHub - brianvoe/gofakeit: Random fake data generator written in go
READMEを見れば使い方は分かりますが、備忘録として私が作ったものも載せておきます。
やったことは以下になります。
以下、ソースと実行方法です。
インストール
$ go get -u github.com/gocarina/gocsv
$ go get github.com/brianvoe/gofakeit/v5
ソース
package main import ( "fmt" "github.com/brianvoe/gofakeit/v5" "github.com/gocarina/gocsv" ) type Car struct { ID int `csv:"id"` Maker string `csv:"maker"` Model string `csv:"model"` TransmissionType string `csv:"transmission_type"` } func main() { gofakeit.Seed(0) cars := []*Car{} for i := 0; i < 10; i++ { car := &Car{ gofakeit.Number(1, 100), gofakeit.CarMaker(), gofakeit.CarModel(), gofakeit.CarTransmissionType(), } cars = append(cars, car) } data, err := gocsv.MarshalString(&cars) if err != nil { panic(err) } fmt.Println(data) }
実行
「go build」でビルドし、できたバイナリ名が「main」とします。
$ ./main # 出力されるデータを確認する $ ./main > sample_cars.csv # パイプでcsvに出力する