从公共应用程序接口 OpenWeatherMap 获取数据¶
本示例介绍从 OpenWeatherMap 天气服务的公共 API 获取数据的过程。 公开数据源的 API - OpenWeatherMap 天气服务。
简介¶
OpenWeatherMap使用付费 API(免费访问功能有限)提供当前天气数据、预报以及云、风、气压和降水等天气现象的地图。 所有天气数据都可以JSON、XML 或 HTML格式检索。 在本示例中,我们将使用免费访问服务来演示此类工作的能力和工具。
入门¶
使用 Julia API 可以使用 HTTP.jl 包,该包提供了发送 HTTP 请求和处理响应的便捷函数。 HTTP 请求和处理响应。
首先,让我们安装 HTTP.jl 和 JSON3.jl 库,以便处理 JSON 数据:
In [ ]:
import Pkg; Pkg.add(["HTTP", "JSON3"]);
发送 GET 请求¶
现在让我们编写代码,向 OpenWeatherMap API 发送 GET 请求:
要使程序正常运行,您需要在
api_key
变量中指定访问服务的 API 令牌。
In [ ]:
using HTTP, JSON3
# Ваш API ключ от OpenWeatherMap
api_key = "введите Ваш API токен";
# Интересующий город
city = "Moscow,ru";
# URL для запроса
url = "http://api.openweathermap.org/data/2.5/weather?q=$city&APPID=$api_key&units=metric";
# Отправка GET-запроса
response = HTTP.get(url);
在这里,我们使用HTTP.get(url)
向 API 发送 GET 请求。
读取收到的数据¶
现在我们检查响应的状态:如果状态为 200,则请求成功。
接下来,我们使用JSON3.read(response.body)
函数解析 JSON 响应。
这样,我们就能从接收到的数据中提取并输出天气信息。
In [ ]:
# Проверка статуса ответа
if response.status == 200
# Парсинг JSON-ответа
data = JSON3.read(response.body)
# Извлечение и вывод информации о погоде
println("Сегодня: $(Date(now()))")
println("Погода в городе $(data.name):")
println("Температура: $(data.main.temp)°C")
println("Влажность: $(data.main.humidity)%")
println("Описание: $(data.weather[1].description)")
else
println("Ошибка при запросе: статус $(response.status)")
end
接下来,我们打印整个接收到的JSON3
对象:
In [ ]:
println("$data")
这些数据可在免费访问 OpenWeatherMap 服务的范围内使用。
结论¶
这是一个在 Engee 中使用 API 从开放源检索数据的基本示例。 检索数据的基本示例。您可能需要调整代码,以处理不同的 API、 您可能需要调整代码,以处理不同类型的 类型的请求和响应。