자동으로 날씨 업데이트를 가져오는 스크립트 만들기
Overview
이번 글에서는 공공 API를 활용하여 자동으로 날씨 업데이트를 가져오고 이를 표시하는 스크립트를 만드는 방법에 대해 자세히 설명하겠습니다. 우리는 Python을 사용하여 OpenWeatherMap API에서 날씨 정보를 가져오는 스크립트를 작성할 것입니다. 이를 통해 기초적인 API 사용법, JSON 데이터 처리 및 오류 처리 방법을 배울 수 있습니다.
1. OpenWeatherMap API 소개
OpenWeatherMap API는 실시간 날씨 데이터, 예보 및 과거 날씨 정보를 제공하는 서비스입니다. 무료 계정을 생성하면 API 키를 통해 해당 서비스를 사용할 수 있습니다. 이 API는 다양한 기능을 제공하지만, 우리가 사용할 기능은 특정 지역의 날씨 정보를 요청하는 것입니다.
1.1 API 키 받기
- OpenWeatherMap 웹사이트에 가입합니다.
- 회원가입 후 대시보드에 로그인하고 API 키를 생성합니다. 이 키는 API 요청 시 필요합니다.
2. Python 환경 설정
Python이 설치되어 있지 않다면 Python 공식 웹사이트에서 다운로드하여 설치하세요. 이후 필요한 라이브러리를 설치해야 합니다. requests
라이브러리를 사용할 것이므로 아래 명령어로 설치합니다.
pip install requests
3. 스크립트 작성
이제 본격적으로 날씨 정보를 가져오는 스크립트를 작성해보겠습니다. 아래 코드를 사용하여 스크립트를 만들어 보세요.
import requests
def get_weather(city_name):
# OpenWeatherMap API URL
api_key = "YOUR_API_KEY" # 여기에 본인의 API 키를 입력하세요.
base_url = "http://api.openweathermap.org/data/2.5/weather?"
# 최종 요청 URL
complete_url = f"{base_url}q={city_name}&appid={api_key}&units=metric"
# API 요청
response = requests.get(complete_url)
# 응답 데이터 JSON으로 변환
data = response.json()
# 응답 상태 코드 확인
if response.status_code == 200:
# 날씨 정보 추출
main = data['main']
weather = data['weather'][0]
temperature = main['temp']
pressure = main['pressure']
humidity = main['humidity']
description = weather['description']
# 결과 출력
print(f"{city_name}의 날씨:")
print(f"온도: {temperature}°C")
print(f"기압: {pressure} hPa")
print(f"습도: {humidity}%")
print(f"상세 정보: {description.capitalize()}")
else:
print("도시를 찾을 수 없습니다. 입력한 도시 이름을 확인하세요.")
if __name__ == "__main__":
city = input("날씨를 알고 싶은 도시 이름을 입력하세요: ")
get_weather(city)
3.1 코드 설명
- requests: HTTP 요청을 보내기 위한 라이브러리입니다.
- get_weather 함수: 도시 이름을 인자로 받아서 해당 도시의 날씨 정보를 가져오는 함수입니다.
- API URL 구성: API 키와 도시 이름을 포함한 URL을 만들어 API 요청을 보냅니다.
- JSON 데이터 처리: API로부터 받은 JSON 응답을 파싱하여 필요한 데이터를 추출합니다.
- 상태 코드 확인: API 호출이 성공적으로 이루어졌는지 상태 코드를 통해 확인하고, 실패 시 오류 메시지를 출력합니다.
4. 오류 처리
스크립트에서 발생할 수 있는 오류에 대해 알아보겠습니다.
4.1 일반적인 오류 및 해결 방법
- HTTPError: 만약 API 요청에 문제가 있다면
response.raise_for_status()
를 통해 발생할 수 있습니다. 예를 들어, 잘못된 API 키나 잘못된 도시 이름일 경우입니다.
try:
response.raise_for_status()
except requests.exceptions.HTTPError as err:
print(f"HTTP 오류 발생: {err}")
- JSONDecodeError: JSON 데이터로 응답이 돌아오지 않을 경우 발생할 수 있습니다. 이 경우
data
변수에 접근할 수 없으므로 try-except 문으로 처리해야 합니다.
try:
data = response.json()
except ValueError as e:
print("응답 데이터가 JSON 형식이 아닙니다.")
5. 실행 및 결과
위의 스크립트를 실행하면 사용자에게 도시 이름을 입력하라는 메시지가 표시됩니다. 예를 들어, "Seoul"을 입력하면 서울의 날씨 정보가 출력됩니다. 출력 예시는 다음과 같습니다.
날씨를 알고 싶은 도시 이름을 입력하세요: Seoul
Seoul의 날씨:
온도: 15°C
기압: 1012 hPa
습도: 70%
상세 정보: Clear
6. 마무리 및 참고 문서
이 스크립트를 통해 공공 API를 활용한 기초적인 날씨 정보 가져오기 기능을 구현해보았습니다. 이와 같은 방식으로 다양한 API를 사용하여 유용한 정보를 자동으로 가져오는 스크립트를 만들 수 있습니다.
기타 API 활용법이나 데이터 처리 기술을 배우고 싶다면 다음 링크를 참고하세요:
이제 여러분도 Python과 API를 이용하여 유용한 정보를 자동으로 가져오는 스크립트를 작성할 수 있습니다!
'Study Information Technology' 카테고리의 다른 글
자동 송장 생성 스크립트 구축하기 (0) | 2024.10.23 |
---|---|
맞춤형 대시보드 만들기 여러 데이터 소스에서 실시간 통찰력을 제공하는 방법 (0) | 2024.10.23 |
GitHub 리포지토리 자동화 도구 구축하기 이슈 풀 리퀘스트 및 프로젝트 진행 추적 (0) | 2024.10.23 |
개인 비서 스크립트 만들기 다양한 API 통합으로 일상 작업 및 알림 자동화하기 (34) | 2024.10.22 |
실시간 정보 제공을 위한 Telegram 챗봇 개발하기 (0) | 2024.10.22 |