【プログラミング&テキスト解析】Go言語でJSONファイルを読み込む
前回は,n-gramをつくるスクリプトを書きましたが, やはり,JSONだったり,CSVからデータを読み取りたいですよねー.
というわけで,今回は下記のようなJSONファイルを./input/test.json
として格納し,読み込むスクリプトを書いてみました!
[ {"id":1, "text":"つれずれなるままに"}, {"id":2, "text":"ひぐらしすずりにむかいて"}, {"id":3, "text":"こころにうつりゆくよしなしごとを"}, {"id":4, "text":"そこはかとなくかきつくれば"}, {"id":5, "text":"あやしうこそものぐるおしけれ"} ]
まずは,Pythonで読み込む場合を紹介します.
import json as js jsonfile = open('./input/test.json','r') datasets = js.load(jsonfile)
Pythonの場合はこれだけで,Dictが要素になるlistデータをインポートできます.
では,Go言語で書いた場合はこちら.json_tool.go
というファイル名で作ります.
package main import ( "encoding/json" "fmt" "io/ioutil" ) type Dataset struct { ID int `json:"id"` Text string `json:"text"` } func main(){ // Loading jsonfile file, err := ioutil.ReadFile("./input/test.json") // 指定したDataset構造体が中身になるSliceで宣言する var datasets []Dataset json_err := json.Unmarshal(file, &datasets) if err!=nil{ fmt.Println("Format Error: ", json_err) } fmt.Println(datasets) fmt.Println(datasets[0].Text) fmt.Println(datasets[2].ID) }
実行します
$ go run json_tool.go [{1 つれづれなるままに} {2 ひぐらしすずりにむかいて} {3 こころにうつりゆくよしなしごとを} {4 そこはかとなくかきつくれば} {5 あやしうこそものぐるおしけれ}] つれづれなるままに 3
Sliceの参考資料は下記を参照のこと.
Go言語のArrayとSliceについて - done is better than perfect
意外と簡単ですね!