R:从OData API中提取json数据会产生不一致的结果吗?

时间:2019-03-21 09:35:04

标签: r json odata jsonlite

我正在尝试从威尔士政府统计服务OData API中提取数据。可以在here上找到有关API的详细信息,其中包括有关如何过滤数据的示例。

但是,我似乎得到的是数据的不确定性子集,即每次尝试都会导致返回不同数量的记录。

下面是一个简单的可复制示例。

另外我也尝试过:

  • 使用RJSONIO::fromJSON(),其结果相同。
  • 尝试使用odata.nextLink网址(如果它在json对象中返回),以继续提取更多数据。同样,每次尝试都会产生不同大小的对象。

任何见识将不胜感激。

## preliminaries
library(jsonlite)

# prepare filters
filter1 <- "Column_ItemName_ENG"
filter1.value <- "Gross%20expenditure"
filter2 <- "Row_ItemName_ENG"
filter2.value <- "Parking%20of%20vehicles"

query <- paste0("http://open.statswales.gov.wales/en-gb/dataset/lgfs0009?$filter=",
                filter1, "%20eq%20%27", filter1.value, "%27%20and%20",
                filter2, "%20eq%20%27", filter2.value, "%27")

# test 1
test1 <- jsonlite::fromJSON(query)
test1 <- test1[[2]]

# test 2
test2 <- jsonlite::fromJSON(query)
test2 <- test2[[2]]

# test 3
test3 <- jsonlite::fromJSON(query)
test3 <- test3[[2]]

# compare results
nrow(test1)
nrow(test2)
nrow(test3)

PS:这个问题是从RStudio Community交叉发布的,我保证会用任何一个在其他问题上找到的相关解决方案来更新其中一个。

0 个答案:

没有答案