相关疑难解决方法(0)

如何以较简洁的方式将JSON格式的请求从R中的URL中的GET JSON数据发布到data.frame中?

我在R中编写了以下代码以开始使用数据请求API.这是一个普通的Web服务JSON API.

library(RJSONIO)
library(RCurl)
library(httr)

r <- POST("http://api.scb.se/OV0104/v1/doris/sv/ssd/START/PR/PR0101/PR0101A/KPIFastM2", 
          body = '{ "query": [], "response": { "format": "json" } }')
stop_for_status(r)
a<-content(r, "text", "application/json", encoding="UTF-8")
cat(a, file = "test.json")
x<-fromJSON(file("test.json", "r"))
mydf<-do.call(rbind, lapply(x$data, data.frame))
colnames(mydf)<-c("YearMonth", "CPI")
Run Code Online (Sandbox Code Playgroud)

基本上它使用httr初始化URL的get reuest,然后通过fromJSON将生成的JSON数据转换为R结构.JSON请求如下所示:

{ "query": [], "response": { "format": "json" } }
Run Code Online (Sandbox Code Playgroud)

事实上,我的代码将数据输入到我想要的数据框架中,但是它非常冗长,我拒绝相信所有这些线条都是实现所需结果所必需的.想要的结果当然是mydf data.frame.

所以我的问题是:从Web服务获取数据到data.frame的最短和最正确的方法是什么?

干杯,迈克尔

api json web-services r rcurl

2
推荐指数
1
解决办法
7696
查看次数

标签 统计

api ×1

json ×1

r ×1

rcurl ×1

web-services ×1