我正在尝试创建特定的JSON输出以命中特定的cell tower API。以下是每个请求必须在
中的格式{
"token": "Your_API_Token",
"radio": "gsm",
"mcc": 310,
"mnc": 410,
"cells": [{
"lac": 7033,
"cid": 17811
}],
"address": 1
}
我试图使用两种不同的方法和两个不同的数据框从我的数据框中创建R格式。使用第一个数据框
data_frame_1
cid lac mcc mnc
1 2241 130 91 2
2 4356 123 91 2
3 3456 124 91 2
4 9801 160 91 2
5 6757 160 91 2
for (i in rownames(data_frame_1)){
data<-print(toJSON(list(token = "1asdfghjkl",
radio = "gsm", mcc = 91, mnc = 2, cells = data_frame_1[(i),1:2]), pretty = TRUE))
}
这会产生以下输出:
{
"token": ["1asdfghjkl"],
"radio": ["gsm"],
"mcc": [91],
"mnc": [2],
"cells": [
{
"cid": "2241",
"lac": "130"
}
]
}
这个输出非常接近我想要的最终输出,除了在输出中我不想要的前四个组件周围有方括号。
以下是使用的第二种方法和data_frame:
data_frame_2
token radio mcc mnc lac cid
1 1asdfghjkl gsm 91 2 130 2241
2 1asdfghjkl gsm 91 2 123 4356
3 1asdfghjkl gsm 91 2 124 3456
4 1asdfghjkl gsm 91 2 160 9801
5 1asdfghjkl gsm 91 2 160 6757
data<-toJSON(unname(split(data_frame_2, 1:nrow(data_frame_2))), pretty = TRUE)
这是输出:
[
{
"token": "1asdfghjkl",
"radio": "gsm",
"mcc": "91",
"mnc": "2",
"lac": "130",
"cid": "2241"
}
]
我希望能够修改任何一行,以便能够生成将json写入发出请求所需的输出所需的输出。
答案 0 :(得分:1)
您所要做的就是将参数auto_unbox = TRUE
添加到toJSON
功能。
for(row in rownames(data_frame_1)) {
list(
token = "1asdfghjkl",
radio = "gsm",
mcc = 91,
mnc = 2,
cells = data_frame_1[(row), 1:2]
) %>%
toJSON(pretty = TRUE,
auto_unbox = T) %>%
print
}