首页 文章

将大量的json对象转换为数据帧R.

提问于
浏览
2

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

json_data <- fromJSON(file=json_flie)

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

{“task”:[{“type”:“ping”,“id”:1,“value”:“159 159 152 153 149 147 150 151 148 149”,“IsFinished”:true},{“type”: “延迟”, “ID”:2 “值” 147 “IsFinished”:真},{ “类型”: “吞吐量”, “ID”:3 “值”: “”, “IsFinished”:假},{ “类型”: “DNS”, “ID”:4 “值”:12, “IsFinished”:真}], “measurementTimes”:10, “URL”: “”} { “任务”:[ {“type”:“ping”,“id”:1,“value”:“166 165 179 181 159 162 166 159 161 162”,“IsFinished”:true},{“type”:“latency”,“id “:2”,值 “:159,” IsFinished “:真},{” 类型 “:” 吞吐量”, “ID”:3 “值”: “”, “IsFinished”:假},{ “类型” : “DNS”, “ID”:4 “值”:7, “IsFinished”:真}], “measurementTimes”:10, “URL”: “”} { “任务”:[{ “类型”:” ping“,”id“:1,”value“:”172 172 159 160 159 159 159 158 160 162“,”IsFinished“:true},{”type“:”latency“,”id“:2,”value “:158,” IsFinished “:真},{” 类型 “:” 吞吐量 “ ”ID“:3 ”值“: ”“, ”IsFinished“:假},{ ”类型“: ”DNS“,” ID “:4”,值 “:14,” IsFinished “:真}],” measurementTimes “:10,” URL “:” “} {” 任务 “:[{” 类型 “:” 平”, “ID” :1,“value”:“182 192 171 184 160 159 156 157 180 171”,“IsFinished”:true},{“t YPE “:” 延迟 “ ”ID“:2 ”值“ 156 ”IsFinished“:真},{ ”类型“: ”吞吐量“, ”ID“:3 ”值“: ”“,” IsFinished “:假},{” 类型 “:26, ”IsFinished“:真}], ”measurementTimes“:10, ”URL“: ” “:” DNS “ ”ID“,4” 值“} {” 任务“:[{”type“:”ping“,”id“:1,”value“:”158 186 168 189 190 233 168 160 188 157“,”IsFinished“:true},{”type“:”latency“ , “ID”:2 “值” 157 “IsFinished”:真},{ “类型”: “吞吐量”, “ID”:3 “值”: “”, “IsFinished”:假},{ “类型”: “DNS”, “ID”:4 “值” 1 “IsFinished”:真}], “measurementTimes”:10, “URL”: “”}

1 回答

  • 3

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

    {
        "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控制台中看到的:

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

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

相关问题