Python을 이용해 API를 활용하면 실시간 날씨 정보를 쉽게 가져올 수 있다. OpenWeatherMap 같은 공공 API를 사용하면 특정 지역의 현재 날씨, 기온, 습도 등을 받아와 다양한 방식으로 활용할 수 있다. 이번 포스팅에서는 Python으로 날씨 API를 사용해 데이터를 가져오는 방법을 설명하려고 한다.
날씨 API 사용을 위한 준비
날씨 정보를 가져오기 위해서는 우선 API 키를 발급받아야 한다. OpenWeatherMap 같은 무료 API 서비스를 이용하면 간단한 날씨 데이터를 받아볼 수 있다.
1. OpenWeatherMap API 키 발급받기
- OpenWeatherMap 공식 웹사이트에 접속한다.
- 회원가입 후 로그인한다.
- "API Keys" 메뉴에서 새로운 API 키를 생성한다.
- 생성된 API 키를 복사해 둔다.
2. Python 라이브러리 설치
API를 요청하고 데이터를 다루기 위해 requests
라이브러리를 설치해야 한다.
pip install requests
설치가 완료되면 이제 Python 코드로 날씨 정보를 가져올 준비가 끝났다.
Python으로 날씨 정보 가져오기
Python을 이용해 OpenWeatherMap API에서 날씨 데이터를 요청하는 방법을 알아보자.
1. API 호출 및 데이터 받아오기
API를 호출하여 특정 지역의 날씨 정보를 가져오는 코드를 작성해보자.
import requests
API_KEY = "YOUR_API_KEY" # 발급받은 API 키 입력
CITY = "Seoul" # 원하는 도시 입력
URL = f"https://api.openweathermap.org/data/2.5/weather?q={CITY}&appid={API_KEY}&units=metric&lang=kr"
response = requests.get(URL)
data = response.json()
if response.status_code == 200:
print("현재 날씨:", data["weather"][0]["description"])
print("현재 온도:", data["main"]["temp"], "℃")
print("최고 온도:", data["main"]["temp_max"], "℃")
print("최저 온도:", data["main"]["temp_min"], "℃")
print("습도:", data["main"]["humidity"], "%")
else:
print("데이터를 불러오는 데 실패했습니다.")
2. API 응답 데이터 분석
API에서 반환되는 JSON 데이터를 살펴보면, 날씨 정보뿐만 아니라 풍속, 기압 등의 다양한 데이터를 포함하고 있다. 예제 응답 데이터는 다음과 같다.
{
"weather": [
{"description": "맑음"}
],
"main": {
"temp": 18.5,
"temp_min": 17.0,
"temp_max": 20.0,
"humidity": 50
}
}
이 JSON 데이터에서 필요한 정보만 추출하여 활용하면 된다.
추가 기능 구현하기
날씨 정보를 활용해 더 다양한 기능을 추가할 수도 있다.
1. 사용자가 입력한 도시의 날씨 조회
사용자가 원하는 도시를 입력하면 해당 지역의 날씨 정보를 가져올 수 있도록 코드를 개선해보자.
city = input("날씨를 조회할 도시를 입력하세요: ")
URL = f"https://api.openweathermap.org/data/2.5/weather?q={city}&appid={API_KEY}&units=metric&lang=kr"
response = requests.get(URL)
data = response.json()
if response.status_code == 200:
print(f"{city}의 현재 날씨: {data['weather'][0]['description']}")
print(f"현재 온도: {data['main']['temp']} ℃")
else:
print("도시 정보를 찾을 수 없습니다.")
2. 날씨 데이터를 파일로 저장하기
날씨 데이터를 CSV 파일로 저장하면 나중에 분석하는 데 유용하게 사용할 수 있다.
import csv
def save_weather_to_csv(data, city):
with open("weather_data.csv", "w", newline="", encoding="utf-8") as file:
writer = csv.writer(file)
writer.writerow(["도시", "날씨", "온도", "최고 온도", "최저 온도", "습도"])
writer.writerow([
city,
data['weather'][0]['description'],
data['main']['temp'],
data['main']['temp_max'],
data['main']['temp_min'],
data['main']['humidity']
])
print("날씨 데이터가 weather_data.csv 파일에 저장되었습니다.")
save_weather_to_csv(data, CITY)
Python과 API를 활용한 날씨 정보 가져기의 가능성
Python을 사용하면 간단한 코드로 API를 호출하여 실시간 날씨 데이터를 가져올 수 있다. OpenWeatherMap 외에도 다양한 날씨 API가 존재하며, 무료 또는 유료 옵션을 선택해 더 정밀한 정보를 활용할 수도 있다.
API에서 가져온 데이터를 활용하면 날씨 예측, 시각화, 자동 알림 시스템 등 다양한 기능을 추가할 수 있다. 예를 들어, 특정 온도 이하일 때 알람을 보내거나, 날씨 변화에 따라 다른 작업을 수행하는 프로그램을 만들 수도 있다.
Python과 API를 활용하면 데이터 수집과 분석을 쉽게 할 수 있으므로, 직접 코드를 실행하면서 다양한 기능을 확장해보는 것도 좋은 경험이 될 것이다.
Top comments (0)