【发布时间】:2018-04-24 10:57:34
【问题描述】:
我正在尝试使用 jsonlite 包从 json 访问一个值,但是我尝试访问的值(键 strongbuy 的值,其中句点为 0m)具有相同的键名(句点 -1m 具有相同的键name),所以它返回 NA 值。有没有办法用 jsonlite 或正则表达式来做到这一点?
i<- "MSFT"
json_object <- getURL(json_url)
quote_summary <- fromJSON(json_object) %>% unlist()
quote_summary["quoteSummary.result.recommendationTrend.trend.strongBuy"] %>% unname() %>% as.numeric()
下面是json_object的值:
"{\"quoteSummary\":{\"result\":[{\"recommendationTrend\":{\"trend\":[{\"period\":\"0m\",\"strongBuy\":14,\"buy\":13,\"hold\":6,\"sell\":0,\"strongSell\":1},{\"period\":\"-1m\",\"strongBuy\":12,\"buy\":13,\"hold\":7,\"sell\":0,\"strongSell\":1},{\"period\":\"-2m\",\"strongBuy\":12,\"buy\":13,\"hold\":8,\"sell\":0,\"strongSell\":1},{\"period\":\"-3m\",\"strongBuy\":12,\"buy\":13,\"hold\":9,\"sell\":0,\"strongSell\":1}],\"maxAge\":86400}}],\"error\":null}}"
quote_summary的值如下:
quoteSummary.result.recommendationTrend.trend.period1
"0m"
quoteSummary.result.recommendationTrend.trend.period2
"-1m"
quoteSummary.result.recommendationTrend.trend.period3
"-2m"
quoteSummary.result.recommendationTrend.trend.period4
"-3m"
quoteSummary.result.recommendationTrend.trend.strongBuy1
"14"
quoteSummary.result.recommendationTrend.trend.strongBuy2
"12"
quoteSummary.result.recommendationTrend.trend.strongBuy3
"12"
quoteSummary.result.recommendationTrend.trend.strongBuy4
"12"
quoteSummary.result.recommendationTrend.trend.buy1
"13"
quoteSummary.result.recommendationTrend.trend.buy2
"13"
quoteSummary.result.recommendationTrend.trend.buy3
"13"
quoteSummary.result.recommendationTrend.trend.buy4
"13"
quoteSummary.result.recommendationTrend.trend.hold1
"6"
quoteSummary.result.recommendationTrend.trend.hold2
"7"
quoteSummary.result.recommendationTrend.trend.hold3
"8"
quoteSummary.result.recommendationTrend.trend.hold4
"9"
quoteSummary.result.recommendationTrend.trend.sell1
"0"
quoteSummary.result.recommendationTrend.trend.sell2
"0"
quoteSummary.result.recommendationTrend.trend.sell3
"0"
quoteSummary.result.recommendationTrend.trend.sell4
"0"
quoteSummary.result.recommendationTrend.trend.strongSell1
"1"
quoteSummary.result.recommendationTrend.trend.strongSell2
"1"
quoteSummary.result.recommendationTrend.trend.strongSell3
"1"
quoteSummary.result.recommendationTrend.trend.strongSell4
"1"
quoteSummary.result.recommendationTrend.maxAge
"86400"
【问题讨论】: