LoginSignup
4
3

More than 5 years have passed since last update.

Dataframe to JSON (一形式の)

Last updated at Posted at 2016-03-23

はじめに

  • data.frameのものをJSONファイルに出力するのが目的
  • 色々方法がありますが、欲しい形式のJSONにするものが無かったので、ちょっと処理を書いてみた

出力したいJSONの形式

  • とあるデータベースへのインポートが楽な以下の形式を目指す
$ head aaa.json
{"Sepal.Length":"5.1","Sepal.Width":"3.5","Petal.Length":"1.4","Petal.Width":"0.2","Species":"setosa"}
{"Sepal.Length":"4.9","Sepal.Width":"3.0","Petal.Length":"1.4","Petal.Width":"0.2","Species":"setosa"}
{"Sepal.Length":"4.7","Sepal.Width":"3.2","Petal.Length":"1.3","Petal.Width":"0.2","Species":"setosa"}
{"Sepal.Length":"4.6","Sepal.Width":"3.1","Petal.Length":"1.5","Petal.Width":"0.2","Species":"setosa"}
<snip>

df to json

df <- iris
head(df)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
vec <- apply(df, 1, RJSONIO::toJSON)
vec %>% gsub("\n", "", .) %>% gsub(" ", "", .) -> vec
write(vec, file = "aaa.json")
  • Strategies for formatting JSON output from Rが参考になりましたが、欲しい形式までもうちょい。
  • ポイントは、RJSONIO::toJSONを使うところ。jsonlite::toJSONだと、違う形式で出力されるので、うまくいかなかった。
  • この記事でも言及されているが、jsonliteが元と同じではない模様
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3