将大量json对象转换为dataframe R [英] convert plenty of json objects into dataframe R

查看:199
本文介绍了将大量json对象转换为dataframe R的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在一个json文件中有许多相同格式的json对象 像下面一样.我想将它们转换为R数据帧,然后提取所有的lantency值.但是当我输入命令

I have plenty of json objects under the same format in one json file like below. And I want to convert them into R dataframe and then to extract all the value of lantency.But when I enter the command

json_data <- fromJSON(file=json_flie)

只有第一个json对象存储在数据框中,所以我该怎么办??? 谢谢!

only the first json object is stored in the dataframe, so what should I do??? Thanks!

{任务":[{类型":"ping","id":1,值":"159159152152153149147150151148149",已完成":true},{"type:" latency," id:2," value:147," IsFinished:true},{" type:" throughput," id:3," value:"," IsFinished :false},{" type:" DNS," id:4," value:12," IsFinished:true}]," measurementTimes:10," url:"} {"任务:[{" type:" ping," id:1," value:" 166165179181181159162 166159161162," IsFinished:true},{" type:" latency","id":2,"value":159,"IsFinished":true},{"type":吞吐量","id":3,"value":","IsFinished":false},{ "type":"DNS","id":4,"value":7,"IsFinished":true}],"measurementTimes":10,"url":"} {"task":[{"type :" ping," id:1," value:" 172172172159160159159159158160162," IsFinished:true},{" type:" latency," id:2 ,"value":158,"IsFinished":true},{"type":吞吐量","id":3,"value":","IsFinished":false},{"type":"DNS ," id:4," value:14," IsFinished:true}]," measurementTimes:10," url:"} {" task:[{" type:" ping, "id":1,"value":"182 192 171 184 160 159 156 157 180 171","IsFinished":true}, {"type":等待时间","id":2,值":156,"IsFinished":true},{"type":吞吐量","id":3,"value":", "IsFinished":false},{"type":"DNS","id":4,"value":26,"IsFinished":true}],"measurementTimes":10,"url":"} { "task":[{"type":"ping","id":1,"value":"158186168189189190233233168160188157","IsFinished":true},{"type":延迟","id":2,值":157,"IsFinished":true},{类型":吞吐量","id":3,值":","IsFinished":false} ,{"type":"DNS","id":4,"value":1,"IsFinished":true}],"measurementTimes":10,"url":"}

{"task":[{"type":"ping","id":1,"value":" 159 159 152 153 149 147 150 151 148 149","IsFinished":true},{"type":"latency","id":2,"value":147,"IsFinished":true},{"type":"throughput","id":3,"value":"","IsFinished":false},{"type":"DNS","id":4,"value":12,"IsFinished":true}],"measurementTimes":10,"url":""}{"task":[{"type":"ping","id":1,"value":" 166 165 179 181 159 162 166 159 161 162","IsFinished":true},{"type":"latency","id":2,"value":159,"IsFinished":true},{"type":"throughput","id":3,"value":"","IsFinished":false},{"type":"DNS","id":4,"value":7,"IsFinished":true}],"measurementTimes":10,"url":""}{"task":[{"type":"ping","id":1,"value":" 172 172 159 160 159 159 159 158 160 162","IsFinished":true},{"type":"latency","id":2,"value":158,"IsFinished":true},{"type":"throughput","id":3,"value":"","IsFinished":false},{"type":"DNS","id":4,"value":14,"IsFinished":true}],"measurementTimes":10,"url":""}{"task":[{"type":"ping","id":1,"value":" 182 192 171 184 160 159 156 157 180 171","IsFinished":true},{"type":"latency","id":2,"value":156,"IsFinished":true},{"type":"throughput","id":3,"value":"","IsFinished":false},{"type":"DNS","id":4,"value":26,"IsFinished":true}],"measurementTimes":10,"url":""}{"task":[{"type":"ping","id":1,"value":" 158 186 168 189 190 233 168 160 188 157","IsFinished":true},{"type":"latency","id":2,"value":157,"IsFinished":true},{"type":"throughput","id":3,"value":"","IsFinished":false},{"type":"DNS","id":4,"value":1,"IsFinished":true}],"measurementTimes":10,"url":""}

推荐答案

您输入的JSON格式错误,并且在根级别包含多个元素"task".这类似于定义一个具有多个根的XML文档,这当然是不允许的.如果创建包含"task"元素数组的外部元素,则可以使用fromJSON将文件成功加载到R中.这是该文件的外观:

Your input JSON is malformed, and has multiple elements "task" at the root level. This is akin to defining an XML document with more than one root, which is of course not allowed. If you create an outer element which contains an array of "task" elements, then you will be able to successfully load the file into R using fromJSON. Here is what the file should look like:

{
    "root" : [
        {
            "task":
            [
                {"type":"ping","id":1,"value":" 159 159 152 153 149 147 150 151 148 149","IsFinished":true},
                {"type":"latency","id":2,"value":147,"IsFinished":true},
                {"type":"throughput","id":3,"value":"","IsFinished":false},
                {"type":"DNS","id":4,"value":12,"IsFinished":true}
            ],
            "measurementTimes":10,
            "url":""
        },
        {
            "task":
            [
                {"type":"ping","id":1,"value":" 166 165 179 181 159 162 166 159 161 162","IsFinished":true},
                {"type":"latency","id":2,"value":159,"IsFinished":true},
                {"type":"throughput","id":3,"value":"","IsFinished":false},\
                {"type":"DNS","id":4,"value":7,"IsFinished":true}
            ],
            "measurementTimes":10,
            "url":""
        },

    ... and so on for other entries

    ]
}

这是我在R控制台中看到的内容:

Here is what I saw in the R console:

> summary(json_data)
      Length Class  Mode
root 5      -none- list

输入变量名json_data给了我整个JSON结构的转储.

And entering the variable name json_data gave me a dump on the entire JSON structure.

这篇关于将大量json对象转换为dataframe R的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆