Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 OpenWeatherMap API 활용하기 – 전 세계 도시의 실시간 날씨 조회 방법

이 튜토리얼에서는 OpenWeatherMap API를 활용해 특정 도시의 날씨 정보를 가져오는 방법을 알아봅니다. OpenWeatherMap API를 사용하려면 먼저 API 키가 필요한데, 공식 웹사이트에서 계정을 만들면 무료로 발급받을 수 있습니다.

계정을 생성하고 API 키를 발급받으세요. 분당 60회 호출까지는 무료이며, 그 이상 사용하려면 유료 플랜에 가입해야 합니다. 이 튜토리얼 수준에서는 무료 버전만으로 충분합니다. HTTP 요청을 보내기 위해 requests 모듈이, 응답 데이터를 다루기 위해 json 모듈이 필요합니다.

날씨 정보를 가져오는 단계

  • requests와 json 모듈을 임포트합니다.

  • 날씨 API의 기본 URL(https://api.openweathermap.org/data/2.5/weather?)을 초기화합니다.

  • 도시 이름과 API 키를 설정합니다.

  • 기본 URL에 API 키와 도시 이름을 추가합니다.

  • requests.get() 메서드로 GET 요청을 보냅니다.

  • json 모듈을 사용해 응답에서 날씨 정보를 추출합니다.

예제 코드

전체 코드는 다음과 같습니다.

# requests와 json 모듈 임포트
import requests, json

# 기본 URL
BASE_URL = "https://api.openweathermap.org/data/2.5/weather?"

# 도시 이름
CITY = "Hyderabad"

# API 키
API_KEY = "Your API Key"

# URL 조합
URL = BASE_URL + "q=" + CITY + "&appid=" + API_KEY

# HTTP 요청
response = requests.get(URL)

# 응답 상태 코드 확인
if response.status_code == 200:
    # JSON 형식으로 데이터 받기
    data = response.json()
    # main 딕셔너리 블록 가져오기
    main = data['main']
    # 온도
    temperature = main['temp']
    # 습도
    humidity = main['humidity']
    # 기압
    pressure = main['pressure']
    # 날씨 보고서
    report = data['weather']
    print(f"{CITY:-^30}")
    print(f"Temperature: {temperature}")
    print(f"Humidity: {humidity}")
    print(f"Pressure: {pressure}")
    print(f"Weather Report: {report[0]['description']}")
else:
    # 오류 메시지 출력
    print("Error in the HTTP request")

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

----------Hyderabad-----------
Temperature: 295.39
Humidity: 83
Pressure: 1019
Weather Report: mist

추가 팁: 온도를 섭씨로 변환하기

OpenWeatherMap API는 기본적으로 온도를 켈빈(K) 단위로 반환합니다. 위 실행 결과의 295.39가 바로 켈빈 값입니다. 섭씨(°C)로 변환하려면 켈빈 값에서 273.15를 빼면 되고, 더 간단하게는 요청 URL 끝에 &units=metric 파라미터를 추가하면 API가 바로 섭씨 온도를 반환해 줍니다.

마무리

이상으로 OpenWeatherMap API를 이용해 원하는 도시의 현재 날씨를 확인하는 방법을 살펴보았습니다. 이 코드를 응용하면 여러 도시의 날씨를 한 번에 조회하거나, 일정 시간마다 자동으로 날씨를 알려주는 프로그램도 만들 수 있습니다. 튜토리얼을 따라 하다가 어려운 점이 있다면 댓글로 남겨 주세요.