数据帧列表到一个数据帧

List of Data Frames to One Data Frame

免责声明:我知道 this question 之前有人问过。这个答案中提供的答案过去对我有用,但由于某种原因现在已经停止了。

我正在从 Mailchimp API 中提取营销电子邮件统计信息。在过去半年左右的时间里,我一直在这样做。然而,在过去的 2 个月里,我认为我提取的内容的结构发生了变化,因此我的代码不再有效,我也不知道为什么。我相信这与我收到的数据帧列表中的嵌套数据帧有关。

这是我的代码示例和生成的数据帧列表。我已从我的代码和图像中删除敏感信息:

library(httr)
library(jsonlite)
library(plyr)

#Opens-----------
opens1 <- GET("https://us4.api.mailchimp.com/3.0/reports/***ReportNumber***/sent-to?count=4000",authenticate('***My Company***', '***My-Password***'))
opens1 <- content(opens1,"text")
opens1 <- fromJSON(opens1)

然后我 运行 opens1 <- ldply(opens1, data.frame),我收到以下错误:

Error in allocate_column(df[[var]], nrows, dfs, var) : 
Data frame column 'merge_fields' not supported by rbind.fill

我尝试使用并查找 rbind.fill() 以及我 post 顶部链接答案中描述的其他方法,但无济于事。我对 merge_fields 变量的哪些解释有误,或者我理解错了,我该如何更正它?

我只是想从 opens1 列表中获取所有变量的一个数据框。

感谢所有帮助,请随时提出任何澄清问题!

快速浏览一下,这似乎对我有用:

library(httr)
campaign_id <- "-------"
apikey = "------"
url <- sprintf("https://us1.api.mailchimp.com/3.0/reports/%s/sent-to", campaign_id)
opens <- GET(url, query = list(apikey = apikey, count = 4000L))
lst <- rjson::fromJSON(content(opens, "text"))
df <- dplyr::bind_rows(
  lapply(lst$sent_to, function(x) 
    as.data.frame(t(unlist(x)), stringsAsFactors = F)
))