2017-01-30 20 views
0

私はサーバーから取得しているJSON入力を持っています。これをデータフレームオブジェクトに解析したいと思います。複数行JSONを解析するR

構造:

コンパクトなフォーム

'{"total_rows":2,"offset":0,"rows":[{"id":"1","key":["1001"],"value":{"context":"1001","application_id":"1","cust_assets_total":1550000}},{"id":"2","key":["1001"],"value":{"context":"1001","application_id":"2","cust_assets_total":1550000}}]}' 

プリティフォーム

{ 
    "total_rows": 2, 
    "offset": 0, 
    "rows": [ 
    { 
     "id": "1", 
     "key": [ 
     "1001" 
     ], 
     "value": { 
     "context": "1001", 
     "application_id": "1", 
     "cust_assets_total": 1550000 
     } 
    }, 
    { 
     "id": "2", 
     "key": [ 
     "1001" 
     ], 
     "value": { 
     "context": "1001", 
     "application_id": "2", 
     "cust_assets_total": 1550000 
     } 
    } 
    ] 
} 

予想される出力:

context application_id cust_assets_total 
1001 1    1550000 
1001 2    1550000 

に使用コード:

library(jsonlite) 

raw_data <- '{"total_rows":2,"offset":0,"rows":[{"id":"1","key":["1001"],"value":{"context":"1001","application_id":"1","cust_assets_total":1550000}},{"id":"2","key":["1001"],"value":{"context":"1001","application_id":"2","cust_assets_total":1550000}}]}' 

temp <-fromJSON(paste(readLines(raw_data),collapse="")) 

しかし、これでエラーが発生しました:

Error in file(con, "r") : cannot open the connection 
In addition: Warning message: 
In file(con, "r") : 
    cannot open file '{"total_rows":2,"offset":0,"rows":[{"id":"1","key":["1001"],"value":{"context":"1001","application_id":"1","cust_assets_total":1550000}},{"id":"2","key":["1001"],"value":{"context":"1001","application_id":"2","cust_assets_total":1550000}}]}': No such file or directory 
+0

'raw_data'が既にRに入っている場合、' fromJSON(raw_data) 'だけではないのはなぜですか?エラーについては、 'readLines(textConnection(raw_data)) 'のように' textConnection'が不足している可能性があります。 – Jota

+0

raw_dataはRcurlを使用してWebからダウンロードされます。つまり、raw_data < - getURL(url)あなたが提案したもの –

答えて

0

あなたは可能性がありreadLinesあなたが "RAW_DATA" の周りtextConnectionを包んだが、それはそれを残すためにはるかに簡単だ場合:

> temp <-fromJSON(raw_data) 
> temp 
$total_rows 
[1] 2 

$offset 
[1] 0 

$rows 
    id key value.context value.application_id value.cust_assets_total 
1 1 1001   1001     1     1550000 
2 2 1001   1001     2     1550000 

注:このバージョンのfromJSONでは、3要素の名前付きリストが表示されます。

+0

今質問を聞いている気がする –

関連する問題