如何使用dplyr将JSON数据转换为可解析的表格格式?
问题:将JSON解析为表格形式数据框
我尝试用jsonlite包的fromJSON()函数解析一段JSON代码,但得到的是列表格式,而非预期的表格形式数据框。
原始数据
{ "PROB": 0.066977381909206, "Y": -3.221016563928024, "x": 933 }
测试代码及当前输出
library(jsonlite) jsonStr <- '{ "PROB": 0.066977381909206, "Y": -3.221016563928024, "x": 933 }' t = fromJSON(jsonStr) > t $PROB [1] 0.06697738 $Y [1] -3.221017 $x [1] 933
预期输出
PROB Y x 1 0.06697738 -3.221017 933
解决方法
只需将fromJSON()返回的列表转换为数据框即可,以下两种方式都能实现需求:
方法1:解析后转换为数据框
library(jsonlite) jsonStr <- '{ "PROB": 0.066977381909206, "Y": -3.221016563928024, "x": 933 }' # 先解析为列表 result_list <- fromJSON(jsonStr) # 将列表转换为数据框 result_df <- as.data.frame(result_list) print(result_df)
输出:
PROB Y x 1 0.06697738 -3.221017 933
方法2:直接解析为数据框(一步到位)
给原始JSON外层添加数组括号[],让fromJSON()直接返回数据框:
library(jsonlite) # 给JSON对象包裹数组括号 jsonStr <- '[{ "PROB": 0.066977381909206, "Y": -3.221016563928024, "x": 933 }]' result_df <- fromJSON(jsonStr) print(result_df)
输出与方法1一致。
内容的提问来源于stack exchange,提问作者cdcarrion
相关产品推荐
相关产品推荐

