この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
今行っている作業でダミーデータのCSVを作りたいと思い、使用している言語がGolangであったため、それらを実現できるライブラリを検討してみました。 結果、以下の2つを組み合わせると楽にできました。
それぞれの使い方はリンクのページを見れば分かりやすいとは思いますが、組み合わせてCSVとして出力した例として、今回作成したプログラムを載せておきたいと思います。
プログラムと実行について
Golangを実行できる環境にて、「go mod」で予め使用するライブラリをインストールしておきます。
$ go get github.com/brianvoe/gofakeit/v6
$ go get -u github.com/gocarina/gocsv
プログラムについては以下となります。
package main
import (
"fmt"
"github.com/brianvoe/gofakeit/v6"
"github.com/gocarina/gocsv"
)
type Beer struct {
ID int `csv:"id"`
Malt string `csv:"malt"`
Name string `csv:"name"`
Style string `csv:"style"`
}
func main() {
gofakeit.Seed(0)
beers := []*Beer{}
for i := 0; i < 10; i++ {
b := &Beer{
gofakeit.Number(1, 100),
gofakeit.BeerMalt(),
gofakeit.BeerName(),
gofakeit.BeerStyle(),
}
beers = append(beers, b)
}
csv, err := gocsv.MarshalString(&beers)
if err != nil {
panic(err)
}
fmt.Println(csv)
}
今回はビールのダミーデータを作り、それをCSV形式で出力してみました。出力は標準出力にしているので、結果をファイルとして残したい場合はパイプを使うことなります。(今回は開発用のデータを作成するだけので、これで十分でした。)
実行は以下のようになります。
go run main.go > beer.csv
以上、簡単なダミーデータ作成の例でした。何かの役に立てば幸いです。