从R中的JSON以列式格式提取数据

时间:2016-10-16 08:11:40

标签: json r

我想从R
中的json对象中提取数据 R包使用了tidyjson,magrittr,jsonlite

trial <- '[{ "KEYS": {"USER_ID": "1266", "MOBILE_NO": "9000000000"}}]'

trial %>%  
  gather_array %>% # stack as an array
  spread_values(USER_ID = jstring("KEYS.USER_ID"), 
MOBILE_NO = jstring("KEYs.MOBILE_NO")  )

此代码的输出不是必需的。任何有建议的人。

 document.id array.index USER_ID MOBILE_NO
1           1           1    <NA>      <NA>

预期产出:

 document.id array.index USER_ID MOBILE_NO
         1           1    1266     9000000000

1 个答案:

答案 0 :(得分:0)

tidyjson使用多参数路径,而不是您尝试的“点分隔”路径。你可以真正解决这两种方式:

建议,因为它不会丢弃对象的其余部分:

trial <- '[{ "KEYS": {"USER_ID": "1266", "MOBILE_NO": "9000000000"}}]'

trial %>%  
    gather_array %>% # stack as an array
    spread_values(USER_ID = jstring('KEYS','USER_ID'), 
                  MOBILE_NO = jstring('KEYS','MOBILE_NO'))

如果愿意或必要,也可以使用enter_object

trial <- '[{ "KEYS": {"USER_ID": "1266", "MOBILE_NO": "9000000000"}}]'

trial %>%  
  gather_array %>% # stack as an array
  enter_object('KEYS') %>%
  spread_values(USER_ID = jstring('USER_ID'), 
                MOBILE_NO = jstring('MOBILE_NO'))