如何通过 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/....")
^^^^^^^^
正在尝试访问 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/....")
^^^^^^^^