2017-08-09 18 views
0

特定のJSON出力を作成して、特定のセルタワーAPIにヒットさせようとしています。ここでの要求のそれぞれが、私は二つの異なる方法と異なる2つのデータフレームを使用して、私のデータフレームからRに、このフォーマットを作成しようとしていますデータフレームを特定の形式のJSONに変換するR

{ 
"token": "Your_API_Token", 
"radio": "gsm", 
"mcc": 310, 
"mnc": 410, 
"cells": [{ 
    "lac": 7033, 
    "cid": 17811 
}], 
"address": 1 
} 

である必要があります形式です。最初のデータフレームを使用して

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" 
    } 
    ] 
} 

広場がある以外、この出力は、私が持っているしたいという最終的な出力に非常に近いです私が出力に欲しくない最初の4つのコンポーネントのまわりの括弧。ここ

は、第二の方法であり、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" 
} 
    ] 

Iは、線のいずれかを変更できるようにしたいと思いリクエストを行うために必要な出力にjsonを書き込むために必要な出力を生成できるようにする必要があります。

+0

ボックスを削除するには、 'auto_unbox = TRUE'パラメータを' toJSON'関数に追加します。 – maloneypatr

答えて

1

ファンクションには、パラメータauto_unbox = TRUEを追加するだけです。

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 


} 
関連する問題