gpt4 book ai didi

json - 尝试使用 r 中的 jsonlite 将数据框转换为分层 json 数组

转载 作者:行者123 更新时间:2023-12-04 00:12:25 25 4
gpt4 key购买 nike

我正在尝试将我的超简单数据框变成更有用的东西——在本例中是一个 json 数组。我的数据看起来像

| V1        | V2        | V3        | V4        | V5        ||-----------|-----------|-----------|-----------|-----------|| 717374788 | 694405490 | 606978836 | 578345907 | 555450273 || 429700970 | 420694891 | 420694211 | 420792447 | 420670045 |

and I want it to look like

[
{
"V1": {
"id": 717374788
},
"results": [
{
"id": 694405490
},
{
"id": 606978836
},
{
"id": 578345907
},
{
"id": 555450273
}
]
},
{
"V1": {
"id": 429700970
},
"results": [
{
"id": 420694891
},
{
"id": 420694211
},
{
"id": 420792447
},
{
"id": 420670045
}
]
}

]

关于如何实现这一点有什么想法吗?感谢您的帮助!

最佳答案

您的data.frame 不能直接写入该格式。为了获得所需的 json,首先需要将 data.frame 转换为以下结构:

list(
list(V1=list(id=<num>),
results=list(
list(id=<num>),
list(id=<num>),
...)),
...)

这是将转换应用到示例数据的方法:

library(jsonlite)
# recreate your data.frame
DF <-
data.frame(V1=c(717374788,429700970),
V2=c(694405490, 420694891),
V3=c(606978836,420694211),
V4=c(578345907,420792447),
V5=c(555450273,420670045))

# transform the data.frame into the described structure
idsIndexes <- which(names(DF) != 'V1')
a <- lapply(1:nrow(DF),FUN=function(i){
list(V1=list(id=DF[i,'V1']),
results=lapply(idsIndexes,
FUN=function(j)list(id=DF[i,j])))
})

# serialize to json
txt <- toJSON(a)
# if you want, indent the json
txt <- prettify(txt)

关于json - 尝试使用 r 中的 jsonlite 将数据框转换为分层 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24524874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com