【问题标题】:convert json to list in a vectorized way in R在R中以矢量化方式将json转换为列表
【发布时间】:2016-04-15 22:52:25
【问题描述】:

我想知道是否有任何方法可以将 json 字符串以矢量化方式转换为列表,换句话说,我想知道我们是否可以使用 json 列表转换为 R 中的列表列表.

有许多选项可以从 Json 转换为列表。但是,它们都一次只接受一个 json 字符串。

我有以下 json 格式列表:

x =
c("{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}", 
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]})

现在我想将它们转换为列表。现在我使用foreach 包将它们转换成列表。以下是我使用的代码:

library(jsonlite)
library(foreach)
library(doParallel)
registerDoParallel(cores = 2)

z <- foreach(i = 1:length(x), .combine = 'rbind') %dopar% { 
fromJSON(x[1])}

但是,我想做如下的事情:

z <- Vectroize_fromJSON(x)

有什么想法吗?

注意:使用foreach 的原因是我发现它比普通的for 循环要快。但是,当json的列表很大时,就变得不切实际了。

【问题讨论】:

  • x 是 json 字符串列表吗? R 不会接受像“[]”这样的语法作为集合。
  • 谢谢,更新问题

标签: json r foreach


【解决方案1】:

这和你想要的很接近吗?

vectorize_fromJSON <- Vectorize(fromJSON)
z <- vectorize_fromJSON(x)

【讨论】:

  • 你知道在r中将json转换为list时如何只分配数字吗?目前它把json字符串作为变量名放在列表中
  • 变量名是否为字符串无关紧要,因为您总是可以通过指定数字索引来提取元素?例如,li &lt;- list(a = 3) 然后 li[[1]] == li$a = 3
猜你喜欢
  • 2022-10-07
  • 2011-11-19
  • 2022-07-13
  • 2019-09-16
  • 1970-01-01
  • 2023-02-05
  • 2021-12-25
  • 2022-09-29
  • 2016-03-13
相关资源
最近更新 更多