데이터 요청 API를 사용하기 위해 R에 다음 코드를 작성했습니다. 그것은 일반적인 웹 서비스 JSON API입니다. R URL의 JSON 형식의 데이터를 덜 자세하게 data.frame으로 가져 오도록 JSON 형식의 요청을 게시하려면 어떻게해야합니까?
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")
은 기본적으로는 사용 HTTR 다음 fromJSON를 통해 R 구조에 결과 JSON 데이터를 변환하는 URL에 대한 GET reuest를 초기화. 나는 그것을 원한 같은
이
{ "query": [], "response": { "format": "json" } }
사실 내 코드는 data.frame에 데이터를 얻을 수 있지만, 그것은 고통스럽게 자세한 내가이 라인을 모두 달성하기 위해 필요했다고 생각하지 않습니다 다음 JSON 요청은 다음과 같습니다 원하는 결과. 원하는 결과는 물론 mydf data.frame입니다.
질문 : 웹 서비스에서 data.frame으로 데이터를 가져 오는 가장 짧고 정확한 방법은 무엇입니까?
건배, 마이클
json으로 보인다. 올바른 JSON이라면'content (r, "text")'와 함께 쉽게 파싱 할 것이고, 그러면'jsonlite :: fromJSON()'이 가능하면'data.frame'을 파싱 할 것입니다. – sckott