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

在R语言中如何将WTO API返回的嵌套列表转换为DataFrame?

将WTO API返回的嵌套列表转换为可用DataFrame

我尝试通过以下R代码调用WTO的时序数据API获取数据,但返回结果是嵌套列表,无法直接转换成可用的DataFrame,求解决方法:

library(httr)
library(readxl)
library(tidyverse)
library(jsonlite)

resp <- GET("https://api.wto.org/timeseries/v1/data?i=ITS_CS_AX6&r=188,222,320,340,558,591,826&p=000&pc=SA,SB,SC,SD,SE,SF,SG,SH,SI,SJ,SK&ps=2010-2020&subscription-key=3134a3b9d8884ba991e0bfe2f2902c4f")

df <- fromJSON(rawToChar(resp$content))

返回的resp结构如下:
resp结构


解决方法

WTO的这个API返回的JSON结构里,核心数据嵌套在df$dataset$data层级下,每个子元素对应一行数据。你可以用dplyr的bind_rows()函数直接将这些嵌套列表合并成标准DataFrame:

# 提取嵌套的核心数据列表
data_rows <- df$dataset$data

# 转换为DataFrame
final_df <- bind_rows(data_rows)

如果需要提前扁平化JSON结构,也可以在调用fromJSON()时添加flatten = TRUE参数,自动处理部分嵌套结构:

# 解析时直接扁平化嵌套结构
df <- fromJSON(rawToChar(resp$content), flatten = TRUE)

# 提取数据部分得到DataFrame
final_df <- df$dataset$data

执行完上述代码后,final_df就是可直接使用的结构化DataFrame,包含API返回的所有字段和对应数据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:05:18