2017-08-09 125 views
0

我正在嘗試創建特定的JSON輸出以打擊特定的單元塔API。這裏是每個請求必須在的格式將數據幀轉換爲R中的特定格式化JSON

{ 
"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

要刪除這些框,可以將'auto_unbox = TRUE'參數添加到'toJSON'函數中... – maloneypatr

回答

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 


}