在R中解析多行JSON
我有一个来自服务器的JSON输入,我想把它解析成一个数据帧对象 结构: 紧凑型在R中解析多行JSON,json,r,jsonlite,Json,R,Jsonlite,我有一个来自服务器的JSON输入,我想把它解析成一个数据帧对象 结构: 紧凑型 '{"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",
'{"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=""))
使用的代码:
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=""))
如果围绕“原始数据”包装
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
>温度
$total_行
[1] 2
$offset
[1] 0
$rows
id key value.context value.application\u id value.cust\u assets\u总计
1 1 1001 1001 1 1550000
2 2 1001 1001 2 1550000
注:。。。此版本的
fromJSON
提供了一个三元素命名列表。如果raw\u data
已经在R中,为什么不直接使用fromJSON(raw\u data)
?至于错误,我相信您可能缺少textConnection
,因为在readLines(textConnection(raw_data))
raw_数据将是使用Rcurl从web下载的数据,也就是说,raw_data现在问这个问题感觉很愚蠢,谢谢您的解决方案