我想从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
答案 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'))