r 使用R中的API获取所有Airtable表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了r 使用R中的API获取所有Airtable表相关的知识,希望对你有一定的参考价值。
library(tidyverse)
library(httr)
library(jsonlite)
# API set up
api <- "https://api.airtable.com/v0/apphVdH23b9rXFd1p/"
api_key <- "keyL1Ja4L6pg3Uu9Q" # fake api_key
tables <- c("products", "brands", "stores")
# GET request
urls <- paste0(api, tables)
resps <- lapply(urls, GET, query = list("api_key" = api_key))
# Parse JSON objects
contents <- list()
for (i in seq_along(resps)) { contents[[i]] <- content(resps[[i]], as = "text") }
jsons <- lapply(contents, fromJSON)
# Assign dataframes
df <- lapply(jsons, as.data.frame)
for (i in seq_along(df)) assign(tables[[i]], df[[i]])
# Unnest dataframes
unnest_dataframes <- function(x) {
y <- do.call(data.frame, x)
if ("data.frame" %in% sapply(y, class)) unnest_dataframes(y)
y
}
for (i in seq_along(df)) assign(tables[[i]], unnest_dataframes(mget(tables)[[i]]))
# Wrangle columns names
wrangle_names <- function(df) {
names(df) %>%
str_replace_all("records.", "") %>%
str_replace_all("fields.", "") %>%
tolower()
}
all_tables <- lapply(tables, get)
for (i in seq_along(tables)) { names(all_tables[[i]]) <- wrangle_names(all_tables[[i]]) }
for (i in seq_along(df)) assign(tables[[i]], all_tables[[i]])
以上是关于r 使用R中的API获取所有Airtable表的主要内容,如果未能解决你的问题,请参考以下文章
r 使用R中的GitHub API获取单个要点的完整内容
如何使用 R 中的 API 在智能合约中获取信息数据
如何从 r 中的 api 获取数据?
迭代获取数据框列的最大值,加一并重复 r 中的所有行
R语言使用data函数获取当前R环境可用的示例数据集:获取datasets包中的所有示例数据集获取所有包的数据集获取特定包的数据集
R语言获得所有Aesthetics(美学映射)参数:使用长表输出使用宽表输出