You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将通过climatetrace API下载的JSON数据转为R数据框?

将Climate Trace API的JSON数据转换为R数据框

我通过Climate Trace的API获取了JSON格式数据,使用的R代码如下:

url <- "https://api.climatetrace.org/v6/assets/emissions"
req <- request(url)

resp <- req |> 
  req_url_query(countries = "USA") |>
  req_perform()

resp |> resp_body_json() %>% glimpse()

请问如何将下载的JSON数据转换为数据框?我尝试了以下代码,但尚未成功转换为数据框:

resp |> 
  resp_body_json() |> 
  pluck('assets') |> 
  glimpse()

解决方案

你已经正确定位到了JSON中的assets数组(核心数据所在部分),只需将这个列表结构转换为数据框即可,推荐使用dplyr::bind_rows()或purrr::map_dfr()完成转换:

library(httr2)
library(dplyr)
library(purrr)

# 完整流程代码
url <- "https://api.climatetrace.org/v6/assets/emissions"
req <- request(url)

resp <- req |> 
  req_url_query(countries = "USA") |>
  req_perform()

# 转换为数据框
asset_dataframe <- resp |> 
  resp_body_json() |> 
  pluck("assets") |> 
  bind_rows() # 也可以用 map_dfr(~.) 实现相同效果

# 查看转换后的数据框结构
glimpse(asset_dataframe)

补充说明

  • pluck("assets")提取出的是由多个子列表/数据框组成的列表,bind_rows()会自动将这些子元素合并为标准数据框,缺失字段会自动填充NA。
  • 如果数据中存在嵌套JSON结构(比如某个字段包含子列表),可以使用tidyr::unnest()进一步展开:
library(tidyr)

# 展开指定嵌套字段示例
expanded_df <- asset_dataframe |>
  unnest(cols = c(your_nested_field), keep_empty = TRUE)

内容的提问来源于stack exchange,提问作者OJH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 02:12:06