r语言 - 使用级别重新格式化字符串,我卡住了



>我有以下字符串需要重新格式化

"itemStockDetailsMap_506540 = {"506540_Navy":{"24DUMMY":{"count":0.0,"type":2},"18DUMMY":{"count":0.0,"type":2},"16DUMMY":{"count":0.0,"type":2},"8DUMMY":{"count":0.0,"type":2},"20DUMMY":{"count":0.0,"type":2},"10DUMMY":{"count":0.0,"type":2},"12DUMMY":{"count":0.0,"type":2},"22DUMMY":{"count":0.0,"type":2},"14DUMMY":{"count":0.0,"type":2}},
"506540_Mocha":{"20DUMMY":{"count":0.0,"type":2},"22DUMMY":{"count":0.0,"type":2},"10DUMMY":{"count":0.0,"type":2},"8DUMMY":{"count":0.0,"type":2},"12DUMMY":{"count":0.0,"type":2},"14DUMMY":{"count":0.0,"type":2},"16DUMMY":{"count":0.0,"type":2},"24DUMMY":{"count":0.0,"type":2},"18DUMMY":{"count":0.0,"type":2}}
,"506540_Grey":{"18DUMMY":{"count":0.0,"type":2},"12DUMMY":{"count":0.0,"type":2},"10DUMMY":{"count":0.0,"type":2},"20DUMMY":{"count":0.0,"type":2},"14DUMMY":{"count":0.0,"type":2},"22DUMMY":{"count":0.0,"type":2},"24DUMMY":{"count":0.0,"type":2},"16DUMMY":{"count":0.0,"type":2},"8DUMMY":{"count":0.0,"type":2}}}"

我想在

colour  size   count
Navy    18     0.0
Navy     8     0.0
......
Grey     10    0.0
.

.......

请指导我,如果有任何很酷的技巧可以重新格式化..非常感谢,

假设您的字符串在变量 a 中:

require(rjson)
a <- sub(".*?(\{.*\})", "\1", a)
a <- fromJSON(a)
a <- do.call(rbind, a)
cbind.data.frame(
  colour = rep(sub("\d+_(\w+)", "\1", rownames(a)), each=dim(a)[2]),
  size = as.numeric(rep(sub("(\d+)\w+", "\1", colnames(a)), dim(a)[1])), 
  count = as.numeric(unname(unlist(sapply(a, "[", "count")))))
#    colour size count
# 1    Navy   24     2
# 2    Navy   18     1
# 3    Navy   16     0
# 4    Navy    8     0

尝试以下操作:

install.packages("rjson")
 # 'yourData' is the JSON string in the OP
 do.call(rbind, lapply(rjson::fromJSON(yourData), function(xx) do.call(rbind, xx)))
        count type
24DUMMY 0     2   
18DUMMY 0     2   
16DUMMY 0     2   
8DUMMY  0     2   
20DUMMY 0     2   
10DUMMY 0     2   
12DUMMY 0     2   
22DUMMY 0     2   
14DUMMY 0     2   
20DUMMY 0     2   
22DUMMY 0     2   
10DUMMY 0     2   
8DUMMY  0     2   
12DUMMY 0     2   
14DUMMY 0     2   
16DUMMY 0     2   
24DUMMY 0     2   
18DUMMY 0     2   
18DUMMY 0     2   
12DUMMY 0     2   
10DUMMY 0     2   
20DUMMY 0     2   
14DUMMY 0     2   
22DUMMY 0     2   
24DUMMY 0     2   
16DUMMY 0     2   
8DUMMY  0     2   

最新更新