使用jsonlite实现多级嵌套列表和R中的NASA API
使用美国宇航局的API检索火星天气信息,我检索了一个列表。 在python中,pandas在格式化数据方面做得很好;但是,我必须用R编写API 这就是R中数据的结构,即使在使用jsonlite的使用jsonlite实现多级嵌套列表和R中的NASA API,r,list,api,rstudio,jsonlite,R,List,Api,Rstudio,Jsonlite,使用美国宇航局的API检索火星天气信息,我检索了一个列表。 在python中,pandas在格式化数据方面做得很好;但是,我必须用R编写API 这就是R中数据的结构,即使在使用jsonlite的fromJSON(x,flant=TRUE)函数之后也是如此 我想把原始数据组织成熊猫表 以下是我的API代码: library(httr) library(jsonlite) req <- "https://api.nasa.gov/insight_weather/?api_key=&
fromJSON(x,flant=TRUE)
函数之后也是如此
我想把原始数据组织成熊猫表
以下是我的API代码:
library(httr)
library(jsonlite)
req <- "https://api.nasa.gov/insight_weather/?api_key=&feedtype=json&ver=1.0"
response <- GET(req)
response <- content(response, as="text")
mars <- fromJSON(response, flatten = TRUE)
库(httr)
图书馆(jsonlite)
req从API查询返回的信息比表截图显示的要多,但我只关注返回与示例结构类似的表。如果您想要额外的信息,如风向,这是一个不同的结构,可能更容易单独解析和合并
library(jsonlite)
library(purrr)
library(dplyr)
library(tidyr)
req <- "https://api.nasa.gov/insight_weather/?api_key=DEMO_KEY&feedtype=json&ver=1.0"
mars <- fromJSON(req)
map(mars[1:7], ~unlist(.x[1:6]) %>%
bind_rows) %>%
bind_rows(.id = "day") %>%
pivot_longer(cols = grep("\\.", names(.)), names_sep = "\\.", names_to = c(".value", "var"))
# A tibble: 28 x 8
day First_UTC Last_UTC Season var AT HWS PRE
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 402 2020-01-13T06:24:59Z 2020-01-14T07:04:33Z summer av -65.475 5.364 637.752
2 402 2020-01-13T06:24:59Z 2020-01-14T07:04:33Z summer ct 178174 79226 89083
3 402 2020-01-13T06:24:59Z 2020-01-14T07:04:33Z summer mn -100.044 0.236 618.015
4 402 2020-01-13T06:24:59Z 2020-01-14T07:04:33Z summer mx -16.815 21.146 653.7326
5 403 2020-01-14T07:04:34Z 2020-01-15T07:44:08Z summer av -62.449 5.683 636.87
6 403 2020-01-14T07:04:34Z 2020-01-15T07:44:08Z summer ct 211897 95539 105800
7 403 2020-01-14T07:04:34Z 2020-01-15T07:44:08Z summer mn -101.272 0.205 618.1757
8 403 2020-01-14T07:04:34Z 2020-01-15T07:44:08Z summer mx -16.931 20.986 653.4973
9 404 2020-01-15T07:44:09Z 2020-01-16T08:23:44Z summer av -63.622 5.303 636.148
10 404 2020-01-15T07:44:09Z 2020-01-16T08:23:44Z summer ct 293286 132690 158958
# … with 18 more rows
library(jsonlite)
图书馆(purrr)
图书馆(dplyr)
图书馆(tidyr)
需求%
绑定行(.id=“day”)%>%
pivot\u更长(cols=grep(“\\”,names(.),names\u sep=“\\”,names\u to=c(“.value”,“var”))
#A tibble:28 x 8
第一天协调世界时最后一天协调世界时HWS前的季节变量
1402 2020-01-13T06:24:59Z 2020-01-14T07:04:33Z夏季av-65.475.364 637.752
2 402 2020-01-13T06:24:59Z 2020-01-14T07:04:33Z夏季ct 178174 79226 89083
3 402 2020-01-13T06:24:59Z 2020-01-14T07:04:33Z夏季明尼苏达州-100.044 0.236 618.015
42020-01-13T06:24:59Z 2020-01-14T07:04:33Z夏季mx-16.81521.146 653.7326
5403 2020-01-14T07:04:34Z 2020-01-15T07:44:08Z夏季av-62.449 5.683 636.87
6403 2020-01-14T07:04:34Z 2020-01-15T07:44:08Z夏季ct 211897 95539 105800
7 403 2020-01-14T07:04:34Z 2020-01-15T07:44:08Z夏季明尼苏达州-101.2720.205 618.1757
8403 2020-01-14T07:04:34Z 2020-01-15T07:44:08Z夏季mx-16.93120.986 653.4973
9404 2020-01-15T07:44:09Z 2020-01-16T08:23:44Z夏季av-63.622 5.303 636.148
10404 2020-01-15T07:44:09Z 2020-01-16T08:23:44Z夏季ct 293286 132690 158958
#…还有18排
您可能不应该公开发布您的私有API密钥。您可能需要联系SO版主来清理帖子及其编辑历史记录。