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

如何使用jsonlite与tidyverse将含数组的JSON转为R DataFrame

将嵌套JSON转换为R DataFrame(每行对应单个session记录)

需求说明

需要把包含嵌套sessions数组的JSON数据转换为R DataFrame,要求每个sessions子项对应DataFrame的一行,同时保留所属的assessment字段信息。

实现方案(使用jsonlite和tidyverse)

以下是完整的实现步骤:

  1. 安装并加载依赖库
    如果尚未安装jsonlite和tidyverse,先执行安装命令:
install.packages(c("jsonlite", "tidyverse"))

加载库:

library(jsonlite)
library(tidyverse)
  1. 读取JSON数据
    你可以直接读取本地JSON文件,或者将JSON字符串转为R对象:
  • 读取本地文件:
json_data <- fromJSON("your_file.json")
  • 直接使用示例JSON字符串:
json_str <- '[
  {
    "assessment": "AWS - Application Development",
    "sessions": [
      {
        "percentile": 0.0739025,
        "date_completed": "2021-10-20T20:58:33+00:00"
      },
      {
        "percentile": 0.0745573,
        "date_completed": "2021-07-14T09:58:17+00:00"
      }
    ]
  },
  {
    "assessment": "AWS - Big Data",
    "sessions": [
      {
        "percentile": 0.075069,
        "date_completed": "2021-07-14T08:58:24+00:00"
      },
      {
        "percentile": 0.426306,
        "date_completed": "2021-10-20T19:46:42+00:00"
      }
    ]
  }
]'

json_data <- fromJSON(json_str)
  1. 展平嵌套数据生成目标DataFrame
    使用tidyverse中的unnest()函数将嵌套的sessions列展开,每行对应一个session记录:
target_df <- json_data %>% 
  unnest(sessions, keep_empty = FALSE)
  1. 查看结果
    执行print(target_df)即可得到符合要求的DataFrame,格式如下:
# A tibble: 4 × 3
  assessment                   percentile date_completed          
  <chr>                            <dbl> <chr>                  
1 AWS - Application Development    0.0739 2021-10-20T20:58:33+00:00
2 AWS - Application Development    0.0746 2021-07-14T09:58:17+00:00
3 AWS - Big Data                   0.0751 2021-07-14T08:58:24+00:00
4 AWS - Big Data                   0.426  2021-10-20T19:46:42+00:00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:01:05