如何通过 R 获取空气质量 API?

How to access air quality API through R?

正在尝试访问 AirQuality API,对此很陌生,没有看到简单的 R 教程。

得到我的用户名和密码。

我有兴趣获取洛杉矶数据作为样本

api.airvisual.com/v2/city?city=Los Angeles&state=California&country=USA&key={{KEY}}

我的凭据

用户名 <- "My new free api key" (他们就是这样给的)

密码<-"KEY"

然后我尝试使用教程中的一些代码

library(httr)
library(jsonlite)

url <- "api.airvisual.com/v2/city?city=Los Angeles&state=California&country=USA&key={{KEY}}"

endpoint <- "city"

some_data <- GET(url, endpoint)

它给我一个错误

if (is_http) { 错误:参数长度为零

他们的参数是

参数

城市:城市的英文名称,可以通过各自的列表端点找到。

state: state的英文名称,可以通过各自的listing endpoint找到。

国家:国家的英文名称,可以通过各自的列表端点找到。

我确定这是非常简单的事情,但我以前从未做过,所以我迷路了。请指教。

UPD.

当我使用

url <- "api.airvisual.com/v2/city?city=Los%20Angeles&state=California&country=USA&key={{KEY}}"

用 %20 而不是 space,它给我一个错误

UseMethod("as.request") 错误: 没有适用于 'as.request' 的方法应用于 class "character"

的对象

我认为您不需要指定端点。可以直接使用GET如下:

require(httr)
response = GET("https://api.airvisual.com/v2/city?city=Los%20Angeles&state=California&country=USA&key={{my_private_key}}")

如果您还需要访问响应中的数据,代码为:

data = content(response)

data 是一个如下所示的列表:

$status
[1] "success"

$data
$data$city
[1] "Los Angeles"

$data$state
[1] "California"

$data$country
[1] "USA"

$data$location
$data$location$type
[1] "Point"

$data$location$coordinates
$data$location$coordinates[[1]]
[1] -118.2417

$data$location$coordinates[[2]]
[1] 34.0669



$data$current
$data$current$weather
$data$current$weather$ts
[1] "2019-10-23T07:00:00.000Z"

$data$current$weather$tp
[1] 20

$data$current$weather$pr
[1] 1014

$data$current$weather$hu
[1] 52

$data$current$weather$ws
[1] 0.78

$data$current$weather$wd
[1] 345

$data$current$weather$ic
[1] "01n"


$data$current$pollution
$data$current$pollution$ts
[1] "2019-10-23T07:00:00.000Z"

$data$current$pollution$aqius
[1] 37

$data$current$pollution$mainus
[1] "p1"

$data$current$pollution$aqicn
[1] 41

$data$current$pollution$maincn
[1] "p1"

让我知道这是否有效。

P.S。我什至尝试在洛杉矶使用 %20 而不是 space 并且它有效。

您必须提供方案作为 URL 的一部分:

library(httr)
GET("https://api.airvisual.com/....")
     ^^^^^^^^