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

求助:在R Studio中解析嵌套JSON并拆分行列

解决嵌套JSON解析与行拆分问题

首先确保你已经安装并加载了tidyverse和jsonlite包:

install.packages(c("tidyverse", "jsonlite"))
library(tidyverse)
library(jsonlite)

你的现有代码用map_dfc会把结果按列拼接,无法实现行拆分。正确的做法是先解析每个单元格的JSON为列表,再拆分列表为多行,最后展开成目标列:

# 处理核心逻辑:解析JSON、拆分行、展开列
processed_data <- dwell_sample %>%
  # 保留原有16列,同时将widgets列解析为嵌套列表
  mutate(widgets_parsed = map(widgets, ~fromJSON(.x, flatten = TRUE))) %>%
  # 将列表中的每个对象拆分为单独行(自动实现Type A/B分两行)
  unnest(widgets_parsed) %>%
  # 移除原始JSON列,并重命名匹配目标列名
  select(-widgets) %>%
  rename(
    Type = type,  # 注意:这里要和你JSON里的实际键名对应,比如原键是type还是Type
    Bid = bid,
    Cid = cid,
    x1 = x1,
    x2 = x2,
    x3 = x3,
    x4 = x4,
    x5 = x5
  )

关键细节说明:

  • map(widgets, ~fromJSON(.x, flatten = TRUE)):逐个解析每个单元格的JSON,返回包含Type A、B两个对象的列表
  • unnest(widgets_parsed):把列表中的每个对象拆成独立行,直接满足按Type拆分两行的需求
  • 如果原始JSON的键名和你要的列名不一致,需要在rename里对应调整,比如原JSON键是"TYPE"就改成Type = TYPE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:05:20