R 从多行json字段中提取值(使用列表) 输入端的表:
R 从多行json字段中提取值(使用列表) 输入端的表:,r,json,list,parsing,R,Json,List,Parsing,我期望得到什么 cur\u dt cur_dt <- data.frame(matrix(ncol = 2, nrow = 0)) colnames(cur_dt) <- c("key_id", "json") cur_dt[nrow(cur_dt) + 1,] = c('111', '{"refresh":[{"plu":"72215","name":"
cur\u dt
cur_dt <- data.frame(matrix(ncol = 2, nrow = 0))
colnames(cur_dt) <- c("key_id", "json")
cur_dt[nrow(cur_dt) + 1,] = c('111', '{"refresh":[{"plu":"72215","name":"cake"},{"plu":"3149991","name":"Cola"}],"delete":[]}')
cur_dt[nrow(cur_dt) + 1,] = c('222', '{"refresh":[],"delete":[{"plu":"77264","name":"apple"},{"plu":"3921666","name":"gr.dessert"}]}')
cur_dt[nrow(cur_dt) + 1,] = c('333', '{"refresh":[],"delete":[]}')
cur_dt[nrow(cur_dt) + 1,] = c('444', '{"refresh":[{"plu":"72216","name":"cake2"}],"delete":[]}')
setDT(cur_dt)
View(
cur_dt[,
plu := RcppSimdJson::fparse(json,
query = '/refresh',
max_simplify_lvl = "list",
empty_array = NA_character_,
empty_object = NA_character_,
single_null = NA_character_,
on_query_error = NA_character_,
query_error_ok = TRUE,
type_policy = "anything_goes")]
)
cur_dt <- data.frame(matrix(ncol = 4, nrow = 0))
colnames(cur_dt) <- c("key_id", "json", 'plu', 'name')
cur_dt[nrow(cur_dt) + 1,] = c('111', '{"refresh":[{"plu":"72215","name":"cake"},{"plu":"3149991","name":"Cola"}],"delete":[]}', '72215', 'cake')
cur_dt[nrow(cur_dt) + 1,] = c('111', '{"refresh":[{"plu":"72215","name":"cake"},{"plu":"3149991","name":"Cola"}],"delete":[]}', '3149991', 'Cola')
cur_dt[nrow(cur_dt) + 1,] = c('222', '{"refresh":[],"delete":[{"plu":"77264","name":"apple"},{"plu":"3921666","name":"gr.dessert"}]}', '77264', 'apple')
cur_dt[nrow(cur_dt) + 1,] = c('222', '{"refresh":[],"delete":[{"plu":"77264","name":"apple"},{"plu":"3921666","name":"gr.dessert"}]}', '3921666', 'gr.dessert')
cur_dt[nrow(cur_dt) + 1,] = c('333', '{"refresh":[],"delete":[]}', NA_character_, NA_character_)
cur_dt[nrow(cur_dt) + 1,] = c('444', '{"refresh":[{"plu":"72216","name":"cake2"}],"delete":[]}', '72216', 'cake2')
setDT(cur_dt)