R - Парсинг JSON кода с несколькими уровнями - PullRequest
2 голосов
/ 04 августа 2020

Я пытаюсь разобрать JSON с помощью R. Использование fromJSON() в пакете jsonlite дает мне большую часть пути. Но каков наиболее эффективный способ создания фрейма данных, когда json имеет несколько уровней?

Скажем, у меня есть код json:

[
   {
      "id":"0001",
      "type":"donut",
      "batters":{
         "batter":[
            {
               "id":"1001",
               "type":"Regular"
            },
            {
               "id":"1002",
               "type":"Chocolate"
            },
            {
               "id":"1003",
               "type":"Blueberry"
            }
         ]
      }
   }
]

Я читаю его и разбираю используя fromJSON

json <- readLines(...)
out <- fromJSON(json)

Это дает мне фрейм данных с 1 наблюдением и 3 переменными. Последняя переменная - это список со всеми значениями "тестового".

Я хочу построить это так, чтобы получить 3 наблюдения с 4 переменными.

id     type     batter.id     batter.type
0001   donut    1001          Regular
0001   donut    1002          Chocolate
0001   donut    1003          Blueberry

Могу ли я сделать это напрямую, пока разбор кода json? Или мне нужно построить таблицу, используя что-то вроде unlist? (Если да, то как это можно сделать эффективно, используя что-то вроде unlist?)

1 Ответ

1 голос
/ 04 августа 2020

Немного покопавшись, я нашел unnest в тидыре.

unnest(out, batter, names_sep = ".")
...