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

在R语言中如何将嵌套JSON对象的data字段转换为数据框

报错原因

报错由两类结构问题共同导致:一是v2$data中存在未展开的嵌套子列表,二是business、facebook_page等字段为NULL(长度为0),和其他长度为1的字段行数不匹配,as.data.frame无法对齐维度。

可行解决方案

方案1:仅用jsonlite包处理(无需额外依赖)

在解析JSON时直接开启嵌套结构自动打平,同时替换所有NULL值为NA即可:

library(jsonlite)
# 解析时开启flatten自动打平嵌套结构
v2 <- fromJSON(v1, flatten = TRUE)
# 将所有NULL值替换为长度为1的NA,保证所有字段长度一致
v2$data <- lapply(v2$data, function(x) if(is.null(x)) NA else x)
# 成功转为数据框
df <- as.data.frame(v2$data)

效果说明:嵌套字段会自动以父键.子键的格式生成列名,比如profile_picture.normal、figures.followers,所有NULL字段会转为NA填充。

方案2:结合purrr/tidyr处理(适合批量处理多份同结构JSON场景)

如果后续需要批量解析多个同类JSON,用扁平化+宽表转换的方式兼容性更强:

library(jsonlite)
library(tidyr)
library(tibble)

v2 <- fromJSON(v1)
# 先把所有嵌套元素展开,NULL替换为NA,再转成宽表格式
df <- unlist(lapply(v2$data, function(x) if(length(x) == 0) NA else x)) |> 
  enframe() |> 
  pivot_wider(names_from = name, values_from = value)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:27:02