Я скачал JSON выдержку из Big Query, которая имеет вложенные и повторяющиеся поля (аналогично пакету bigrquery ) и пытаюсь дополнительно манипулировать полученным тиблом.
У меня есть следующий код для загрузки из JSON и преобразования в таблицу
library(tidyverse)
ga.list <- lapply(readLines("temp.json"), jsonlite::fromJSON, flatten = TRUE)
ga.df <- tibble(dat = ga.list) %>%
unnest_wider(dat) %>%
mutate(id = row_number()) %>%
unnest_wider(b_nested) %>%
unnest_wider(b3) %>%
unnest_wider(b33)
Таким образом, было два столбца списка:
- b_nested, это Столбец - это вложенный список (который я рекурсивно раскручивал ... может быть, есть более автоматизированный способ, , если так, пожалуйста, сообщите! )
- rr1 и rr2, эти столбцы всегда будут иметь одинаковые количество элементов. Поэтому элементы 1 из rr1 и rr2 следует читать вместе.
Я все еще работаю над тем, как извлечь id, rr1 и rr2 и превратить их в длинную таблицу с повторяющимися строками для каждой строки идентификатора.
Примечание: этот вопрос редактировался несколько раз, по мере того, как я продвигался дальше ... изначально я застрял, переводя его с JSON на тибл, пока не нашел unnest_wider()
temp. json:
{"a": "4000", "b_nested": {"b1": "(не установлено)", "b2": "some - текст», "b3": { "b31": "1591558980", "b32": "60259425255", "B33": { "b3311": "133997175"}, "b4": ложные}, "b5": правда }, "rr1": [], "rr2": []} {"a": "4000", "b_nested": {"b1": "asdfasdfa", "b2": "some - text more", " b3 ": {" b31 ":" 11111 "," b32 ":" 2222 "," b33 ": {" b3311 ":" 3333333 "}," b4 ": true}," b5 ": true}," rr1 ": [" v1 "," v2 "," v3 "]," rr2 ": [" x1 "," x2 "," x3 "]} {" a ":" 6000 "," b_nested ": {" b1 ":" asdfasdfa "," b2 ":" some - text more "," b3 ": {" b31 ":" 11111 "," b32 ":" 2222 "," b33 ": {" b3311 ":" 3333333 " }, "b4": истинно}, "b5": истинно}, "RR1": [ "v1", "V2", "V3", "v4", "v5"], "RR2": [ "aja1" "aja2", "aja3", "аджа 14 "," aja5 "]}