我有一个清单
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),然后它会被存储为一个列表。
我想最简单的方法是首先将其转换为数据帧,拆分标签列,然后将其转换回 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] 删除。
我来说两句