在R中使用API并转换为数据帧格式

在R中使用API并转换为数据帧格式,r,api,R,Api,我基本上是试图调用API从政府网站检索天气信息 library(data.table) library(jsonlite) library(httr) base<-"https://api.data.gov.sg/v1/environment/rainfall" date1<-"2020-01-25" call1<-paste(base,"?","date","=",date1,sep="") get_rainfall<-GET(call1) get_rainfall_

我基本上是试图调用API从政府网站检索天气信息

library(data.table)
library(jsonlite)
library(httr)
base<-"https://api.data.gov.sg/v1/environment/rainfall"
date1<-"2020-01-25"
call1<-paste(base,"?","date","=",date1,sep="")

get_rainfall<-GET(call1)
get_rainfall_text<-content(get_rainfall,"text")
get_rainfall_json <- fromJSON(get_rainfall_text, flatten = TRUE)
get_rainfall_df <- as.data.frame(get_rainfall_json)
库(data.table)
图书馆(jsonlite)
图书馆(httr)
base您的“get\u rainment\u json”对象以“list”的形式返回。试图将其转换为数据帧就是您得到错误的地方。如果您在列表中指定了“items”对象,您的错误将得到解决!(这样做的结果看起来像是在对象中嵌入了更多的数据……因此您必须将其解析为您感兴趣的格式。)


获取您正在使用的R包?我用“GET”猜你用的是“httr”?我用的是httr和jsonliteHi,谢谢!它可以工作,但是现在,我在我的数据域的1内有一个列表。如何将此列表转换为2个不同的数据域?刚刚添加了另一个循环以获取最终数据集!看一看,并提出任何问题。
library(data.table)
library(jsonlite)
library(httr)
library(dplyr)

base <- "https://api.data.gov.sg/v1/environment/rainfall"
date1 <- "2020-01-25"
call1 <- paste(base, "?", "date", "=", date1, sep = "")

get_rainfall <- GET(call1)
get_rainfall_text <- content(get_rainfall,"text")
get_rainfall_json <- fromJSON(get_rainfall_text, flatten = TRUE)
get_rainfall_df <- as.data.table(get_rainfall_json$items)

df <- data.frame()

for (row in 1:nrow(get_rainfall_df)) {
  new_date <- get_rainfall_df[row, ]$readings[[1]]
  colnames(new_date) <- c("stationid", "value")
  date <- get_rainfall_df[row, ]$timestamp
  new_date$date <- date
  df <- bind_rows(df, new_date)
}