gpt4 book ai didi

r - 使用 RJSONIO 在 R 中解析深度嵌套的 JSON 结构

转载 作者:行者123 更新时间:2023-12-04 19:13:40 26 4
gpt4 key购买 nike

我怀疑我在这里遗漏了一些明显的东西,但是我如何使用 RJSONIO 解析 R 中的深层嵌套结构? ?

例如 - 假设我想直接在 results.data.json$MRData$RaceTable$Races[[1]]$Results[[8]]$Driver 中引用 $familyName使用以下代码段抓取:

require(RJSONIO)
resultsURL='http://ergast.com/api/f1/2012/1/results.json'
results.data.json=fromJSON(resultsURL)
RJSONIO似乎不想解析 ..$Results[[i]]数据作为结构化元素?

最佳答案

require(RJSONIO)

somedata1<-list(a=1,b='w')
fromJSON(toJSON(somedata1))
# $a
# [1] 1

# $b
# [1] "w"

somedata2<-list(a=1,b=2)
fromJSON(toJSON(somedata2))
# a b
# 1 2

somedata3<-list(a='v',b='w')
fromJSON(toJSON(somedata3))
# a b
# "v" "w"

fromJSON(toJSON(somedata3),simplify=StrictNumeric)
# $a
# [1] "v"

# $b
# [1] "w"

fromJSON(toJSON(somedata2),simplify=FALSE)
# $a
# [1] 1

# $b
# [1] 2

fromJSON(toJSON(somedata3),simplifyWithNames = FALSE)
# $a
# [1] "v"

# $b
# [1] "w"


fromJSON(toJSON(somedata2),simplifyWithNames = FALSE)
# $a
# [1] 1

# $b
# [1] 2

从上面的示例中,默认情况下 RJSON 将“同构标量元素的集合/数组简化为 R 向量”。可以使用 simplify 控制这种简化。或 simplifyWithNames .在您的示例中,您可以执行以下任何操作来访问您想要的元素:
require(RJSONIO)
resultsURL='http://ergast.com/api/f1/2012/1/results.json'
results.data.json=fromJSON(resultsURL)
results.data.json$MRData$RaceTable$Races[[1]]$Results[[8]]$Driver['familyName']
# familyName
# "Pérez"

results.data.json=fromJSON(resultsURL,simplify=FALSE)
results.data.json$MRData$RaceTable$Races[[1]]$Results[[8]]$Driver$familyName
# [1] "Pérez"

results.data.json=fromJSON(resultsURL,simplify=StrictNumeric)
results.data.json$MRData$RaceTable$Races[[1]]$Results[[8]]$Driver$familyName
# [1] "Pérez"

results.data.json=fromJSON(resultsURL,simplifyWithNames = FALSE)
results.data.json$MRData$RaceTable$Races[[1]]$Results[[8]]$Driver$familyName
# [1] "Pérez"

关于r - 使用 RJSONIO 在 R 中解析深度嵌套的 JSON 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12449670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com