파이썬에서 일기 예보 API를 쳐 보았습니다.

소개



거주 지역에 대한 일기 예보를 얻기 위해 무료로 API를 제공합니다.
OpenWeatherMap 사용하기

개요



OpenWeatherMap 는 GUI로 일기 예보를 얻을 수 있습니다만, 이번은 API를 사용해 날씨나 기온을 취해 옵니다.


초기 설정



일부 계획이 있으므로 무료 플랜에 등록하고 APIkey를 얻을 수 있습니다. 무료 테두리라면 5일 후까지의 일기 예보를 취득할 수 있고, 1분간에 60회까지의 API 콜 제한이 있는 것 같습니다.

일기 예보 받기



원래 API를 사용하고 싶다면 curl
엔드 포인트는 api.openweathermap.org/data/2.5/weather파라미터는 아래와 같이


매개변수
설명


q
도시 이름

appid
APIkey

mode
응답 방식

units
측정 단위

lang
출력 언어


도시 이름을 지정하여 API 요청 보내기



apicall.py
import json
import requests

#パラメーター
params={"q":"Kobe","appid":apikey}

url="http://api.openweathermap.org/data/2.5/forecast"
res=requests.get(url,params=params)

k=res.json()
jsonText = json.dumps(k["list"][0], indent=4)
print(jsonText)

Kobe (고베)에서 시도한 결과
{
    "dt": 1619406000,
    "main": {
        "temp": 289.15,
        "feels_like": 287.75,
        "temp_min": 288.84,
        "temp_max": 289.15,
        "pressure": 1020,
        "sea_level": 1020,
        "grnd_level": 1016,
        "humidity": 36,
        "temp_kf": 0.31
    },
    "weather": [
        {
            "id": 801,
            "main": "Clouds",
            "description": "few clouds",
            "icon": "02d"
        }
    ],
    "clouds": {
        "all": 20
    },
    "wind": {
        "speed": 8.04,
        "deg": 3,
        "gust": 9.57
    },
    "visibility": 10000,
    "pop": 0,
    "sys": {
        "pod": "d"
    },
    "dt_txt": "2021-04-26 03:00:00"
}

일기예보는 취득할 수 있었습니다만 14시에 취득한 데이터가 "dt_txt": "2021-04-26 03:00:00" 이므로 리얼타임의 정보가 아니고 일 단위로의 취득이 되는 것 같습니다. 뭐 무료 테두리이므로 당연하다고 말하면 당연. 가장 가까운 시간대의 정보를 취득하는 것으로 해결.

일기 예보 보기



정보 자체는 취득할 수 있었기 때문에 기온, 습도, 날씨, 풍속, 취득 일시를 꺼내 날씨 예보처럼 표시합니다.
#省略
jsonText=res.json()

print("都市:Kobe",end="\n\n")
for i in range(0,5):

    print("気温:",jsonText["list"][i]["main"]["temp"])#気温
    print("湿度:",jsonText["list"][i]["main"]["humidity"])#湿度
    print("天気:",jsonText["list"][i]["weather"][0]["main"])#天気
    print("風速:",jsonText["list"][i]["wind"]["speed"])#風速
    print("取得日時:",jsonText["list"][i]["dt_txt"],end="\n\n")#取得日時

결과
気温: 289.14
湿度: 27
天気: Clear
風速: 7.34
取得日時: 2021-04-26 06:00:00

気温: 286.29
湿度: 39
天気: Clouds
風速: 6.69
取得日時: 2021-04-26 09:00:00

気温: 283.53
湿度: 50
天気: Clouds
風速: 4.59
取得日時: 2021-04-26 12:00:00

気温: 282.36
湿度: 58
天気: Clouds
風速: 3.12
取得日時: 2021-04-26 15:00:00

気温: 281.99
湿度: 60
天気: Clouds
風速: 2.57
取得日時: 2021-04-26 18:00:00

온도 표시가 켈빈인 것과 최저 간격이 3시간이라는 제한은 있습니다만, 궁리 나름으로는 충분히 사용할 수 있을 것 같습니다. 표시 설정을 일본어로 하거나, 그 밖에도 취득할 수 있는 정보는 많이 있으므로, 자세한 내용은 문서 를 참조해 주세요.

사이고에게



OpenWeatherMap을 사용하면 비교적 쉽게 정보를 가져올 수있었습니다. 앞으로는 이것으로 유타리를 통지해 주는 BOT를 개발하고 싶습니다.

좋은 웹페이지 즐겨찾기