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

请求协助:将新发布API返回结果转换为R语言DataFrame

解决UN Comtrade API返回结果转R语言DataFrame的问题

第一步:修正GET请求的错误

你的GET调用里URL混入了HTTP/1.1(这是HTTP协议版本标识,不属于URL内容),必须移除。另外订阅密钥更规范的传递方式是放在请求头中,修正后的代码如下:

library(httr)
library(jsonlite)
library(dplyr)

# 设置请求头,传入订阅密钥
headers <- add_headers(`subscription-key` = "6509aa2a08d54ca7b47a2fece2ab5bee")

# 发送GET请求,移除URL中的无效内容
res <- GET(
  url = "https://comtradeapi.un.org/data/v1/get/C/A/HS?reporterCode=826&period=2020&partnerCode=000&partner2Code=000&cmdCode=TOTAL&flowCode=M",
  config = headers
)

第二步:验证请求状态

先确认请求是否成功,状态码200代表请求正常:

# 查看返回状态码
status_code(res)
# 打印原始返回内容,排查是否为合法JSON
rawToChar(res$content) %>% cat()

第三步:解析JSON并转换为DataFrame

UN Comtrade API的返回是嵌套结构,需提取核心数据字段(通常为data)再转成DataFrame:

# 解析JSON内容
json_data <- fromJSON(rawToChar(res$content))

# 提取数据部分转为DataFrame
df <- as.data.frame(json_data$data)

# 如需用dplyr处理,可转为tibble格式
df_tbl <- as_tibble(json_data$data)

常见排查点

  • 若fromJSON报错,先检查rawToChar(res$content)输出是否为合法JSON:如果是权限/参数错误提示,需核对密钥有效性、参数格式(比如period是否符合API要求的格式)。
  • 若返回401/403错误,确认订阅密钥是否过期或输入错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:01:02