从OpenWeatherMap公共API获取数据
此示例描述从公共获取数据的过程
一个公开可用的开放数据源的API,OpenWeatherMap天气服务.
导言
[OpenWeatherMap](https://openweathermap.org /)使用付费API(功能有限的免费访问)提供当前天气数据,预测和地图,其中包含云,风,压力和降水等天气事件。
所有天气数据都可以以[JSON,XML或HTML]格式获得[2]。
在此示例中,我们将使用免费访问服务来演示此类工作的功能和工具。
[2]:https://engee.com/helpcenter/stable/ru/feature/input-output-functions.html
开始行动
使用Julia API可以使用
的HTTP包。jl,为发送提供了方便的功能
HTTP请求和响应处理。
首先,我们将安装HTTP库。jl和JSON3。使用JSON数据的jl:
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-запроса
try
response = HTTP.get(url);
catch err;
println("Введите Ваш API токен!")
end
在这里我们使用 HTTP.get(url) 向API发送GET请求。
提取接收到的数据
现在我们检查响应状态:如果状态为200,则请求成功。
接下来,我们使用函数 JSON3.read(response.body) 用于解析JSON响应。
这就是我们从接收到的数据中提取和输出天气信息的方式。
In [ ]:
# Проверка ввода токена
if isdefined(Main, :response)
# Проверка статуса ответа
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
else
println("Введите Ваш API токен!")
end
接下来,我们将打印所有收到的 JSON3 对象:
In [ ]:
# Проверка ввода токена
if isdefined(Main, :data)
println("$data")
else
println("Введите Ваш API токен!")
end
此数据可用作免费访问OpenWeatherMap服务的一部分。
结论
这是使用API从开源获取数据的基本示例
在英吉利。 根据您正在使用的特定API,
您可能需要调整代码以处理不同的
请求和响应的类型。