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

从多层嵌套列表提取DataFrame:Trademe API数据处理求助

提取嵌套列表中底层分类为DataFrame的解决方案

可以通过递归遍历的方式处理多层嵌套列表,精准筛选出Subcategories为空的底层分类,再整理成包含Name、Number、Path三列的DataFrame。以下是具体实现:

递归提取函数

编写递归函数,自动遍历所有层级,收集符合条件的底层分类数据:

extract_bottom_categories <- function(category_list) {
  result <- list()
  
  for (cat in category_list) {
    # 判定是否为最底层分类(子分类列表为空)
    if (length(cat$Subcategories) == 0) {
      result <- c(result, list(data.frame(
        Name = cat$Name,
        Number = cat$Number,
        Path = cat$Path,
        stringsAsFactors = FALSE
      )))
    } else {
      # 递归处理下一层子分类
      result <- c(result, extract_bottom_categories(cat$Subcategories))
    }
  }
  
  # 合并所有结果为单个DataFrame
  do.call(rbind, result)
}

使用方法

假设你已将Trademe API返回的数据解析为R列表对象(比如用jsonlite包处理),调用函数即可:

library(jsonlite)

# 假设api_data是已解析完成的API数据列表
# api_data <- fromJSON("你的API数据来源")

# 提取底层分类数据
bottom_categories_df <- extract_bottom_categories(api_data$Category$Subcategories)

# 查看输出结果
head(bottom_categories_df)

关键说明

  • 递归函数会自动适配任意深度的嵌套层级,无需手动调整层级逻辑;
  • 仅当分类的Subcategories为空时,才提取该分类的三个字段,确保只保留最底层数据;
  • 最终通过do.call(rbind, ...)将分散的小数据框合并为一个完整的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:20:36