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

如何在R中批量处理JSON文件并合并提取数据至DataFrame?

批量处理JSON文件并合并为单一DataFrame

步骤1:加载所需包

先确保安装并加载必要的R包:

# 未安装则先执行安装
install.packages(c("jsonlite", "tidyr", "dplyr", "janitor", "purrr"))

# 加载包
library(jsonlite)
library(tidyr)
library(dplyr)
library(janitor)
library(purrr)

步骤2:封装单文件处理函数

把你已有的单文件处理逻辑打包成函数,同时加入基础错误处理,避免单个文件异常中断整个流程:

process_single_json <- function(file_path) {
  tryCatch({
    # 读取JSON文件
    json_data <- fromJSON(file_path)
    
    # 沿用你的数据提取逻辑
    df <- data.frame(str_split(json_data$data$summary$bullet, pattern = " -  ")) %>% 
      row_to_names(row_number = 1)
    
    # 可选:添加来源文件名列,方便后续溯源
    df <- df %>% mutate(source_file = basename(file_path))
    
    return(df)
  }, error = function(e) {
    message(paste("处理文件失败:", file_path, ",错误信息:", e$message))
    return(NULL)
  })
}

步骤3:批量处理并合并结果

指定JSON文件所在文件夹,批量读取并处理所有文件,最终合并为一个有序DataFrame:

# 替换为你的JSON文件夹路径
json_folder <- "path/to/your/json/folder"

# 获取文件夹内所有.json格式文件的完整路径
json_files <- list.files(path = json_folder, pattern = "\\.json$", full.names = TRUE)

# 批量处理所有文件并按行合并结果
combined_df <- map_dfr(json_files, process_single_json)

# 查看合并后的结果
head(combined_df)

关键说明

  • list.files的pattern = "\\.json$"确保只匹配后缀为.json的文件;full.names = TRUE返回完整文件路径,避免因路径问题找不到文件。
  • map_dfr会自动将每个文件输出的小DataFrame按行合并,比手动循环追加更高效、代码更简洁。
  • 函数中新增的source_file列可帮你追踪每条数据的原始文件来源,方便后续排查问题。
  • tryCatch块能隔离单个文件的处理错误,保证其他文件的处理不受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 05:09:36