求助:使用R将指定DataFrame转换为目标层级JSON格式
解决R语言DataFrame转指定JSON格式的问题
可以通过dplyr完成数据分组嵌套处理,再用jsonlite转换为目标JSON格式,具体实现如下:
步骤1:安装并加载所需包
如果尚未安装依赖包,先执行安装命令:
install.packages(c("dplyr", "jsonlite"))
加载包:
library(dplyr) library(jsonlite)
步骤2:数据转换与JSON生成
# 生成示例DataFrame df <- data.frame(month = c(1, 1, 1, 2, 2, 2), station = c('AE', 'DC', 'CL', 'AE', 'DC', 'CL'), persons = c(3, 12, 21, 12, 10, 9), results = c(10, 34, 57, 19, 16, 5) ) # 处理数据:删除station列,按month分组生成嵌套的summary processed_data <- df %>% select(-station) %>% group_by(month) %>% summarise( summary = list(tibble(persons = persons, results = results)), .groups = "drop" ) %>% mutate(month = as.character(month)) # 将month转为字符类型,匹配目标JSON格式 # 转换为格式化后的JSON output_json <- toJSON(processed_data, pretty = TRUE, auto_unbox = TRUE) # 打印结果 cat(output_json)
代码说明
select(-station):删除不需要的station列group_by(month):按month字段分组summarise(...):将每组的persons和results封装为tibble并放入summary列表,形成嵌套层级mutate(month = as.character(month)):将month从数值型转为字符型,与目标JSON中的格式一致toJSON(...):pretty=TRUE生成带缩进的格式化JSON,auto_unbox=TRUE确保month字段不会被包裹为数组
执行后输出的JSON结构将与你提供的目标格式完全一致。
内容的提问来源于stack exchange,提问作者kvcha
相关产品推荐
相关产品推荐

