将JSON解析为数据框

时间:2018-05-01 10:04:33

标签: r json dataframe

将以下JSON解析为数据框。

js<-'{"name": null, "release_date_local": null, "title": "3 (2011)",
"opening_weekend_take": 1234, "year": 2011,
"release_date_wide": "2011-09-16", "gross": 59954}'

2 个答案:

答案 0 :(得分:1)

一个选项:

library(rjson)
data.frame(t(unlist(fromJSON(js))))
   title opening_weekend_take year release_date_wide gross
3 (2011)                 1234 2011        2011-09-16 59954

答案 1 :(得分:1)

require(RJSONIO)
js<-'[{"name": null, "release_date_local": null, "title": "3 (2011)",
"opening_weekend_take": 1234, "year": 2011,
"release_date_wide": "2011-09-16", "gross": 59954}]'

js <- fromJSON(js)

也用NA

替换空值
js <- lapply(js, function(x) {
  x[sapply(x, is.null)] <- NA
  unlist(x)
})

然后最后使用do.call方法

asDataFrame <- do.call("rbind", lapply(js, as.data.frame))

OR

    do.call("rbind", js)

输出:

name release_date_local title      opening_weekend_take year  
[1,] NA   NA            "3 (2011)" "1234"               "2011"
     release_date_wide gross  
[1,] "2011-09-16"      "59954"