动态拆分列表

阿维纳什

我有一个清单

query= { "id":"2317",   "product":"112",  "tag":"A,B,C"}

我想要这样的输出 -

query1= { "id":"2317",   "product":"112",  "tag":"A"}
query2= { "id":"2317",   "product":"112",  "tag":"B"}
query3= { "id":"2317",   "product":"112",  "tag":"C"}

ps:标签包含从 1 到 n 项的任意数量的项。所以如果标签有“n”个项目,那么我们需要得到“n”个查询。

有人可以帮助我我们如何在 R 中做到这一点?也许在循环或任何有效的帮助下。

在此先感谢您。>!

注意:在 R 中,查询将存储为字符。所以我使用 query=fromJSON(query),然后它会被存储为一个列表。

CodeNoob

我想最简单的方法是首先将其转换为数据帧,拆分标签列,然后将其转换回 JSON:

df <- dplyr::bind_rows(fromJSON('{ "id":"2317",   "product":"112",  "tag":"A,B,C"}'))
s <- strsplit(df$tag, split = ",")
n <- length(unlist(s))
df <- data.frame(id = rep(df$id, n), product = rep(df$product, n), tag = unlist(s))
toJSON(df)

这会给你:

[{"id":"2317","product":"112","tag":"A"},{"id":"2317","product":"112","tag":"B"},{"id":"2317","product":"112","tag":"C"}] 

您可以使用以下方法轻松将其写入文件 jsonlite::write_json(df, path = 'file_name.json')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章