【发布时间】:2021-08-17 11:28:45
【问题描述】:
我正在使用 RJSONIO 包解析 JSON。
解析的项目包含嵌套列表。
列表中的每个项目都可以使用以下方式提取:
dat_raw$`12`[[31]]
正确返回存储在此位置的字符串(在此示例中,'12' 指月份,[[31]] 指天)。
"31-12-2021"
我现在想运行for 循环来按顺序提取每个月的日期。像这样的:
for (m in 1:12) {
print(dat_raw$m[[31]])
}
这自然会返回NULL,因为列表中没有$m[[31]]。
相反,我想提取存储在$`1`[[31]]、$`2`[[31]]、...$`12`[[31]] 的对象。
这里一定有一个相对简单的解决方案,但我还没有设法破解它。我很重视一些帮助。谢谢。
编辑:我添加了我要提取的列表结构的屏幕截图。对于 dput() 输出,实际的 JSON 对象非常大。希望这会有所帮助
因此,要获取此列表中的日期,我会使用 dat_raw$data$`1`[[1]]$date$gregorian$date 之类的内容。
我想要做的是运行一个循环,通过在for 循环中使用$data$m[[1]]$... 在for 循环中循环$data$`1`[[1]]$...、$data$`2`[[1]]$... ... $data$`12`[[1]]$... 来提取列表的多个项目@ 是月份。
【问题讨论】:
-
您能否提供使用
dput的dat_raw示例?你试过unlist(dat_raw)吗? -
感谢@RonakShah。我添加了我尝试从中提取数据的实际列表的屏幕截图。