날씨 정보 받아오기 - 공공 데이터 포털

LSH·2023년 7월 28일
0

교육 정보

  • 교육 명: 경기미래기술학교 AI 교육
  • 교육 기간: 2023.05.08 ~ 2023.10.31
  • 오늘의 커리큘럼:
    공공데이터 & gradio
    (7/17 ~ 7/28)
  • 강사: 이현주, 이애리 강사님
  • 강의 계획:
    1. 공공데이터 & gradio

공공 자전거 정보 가져오기 포스트

Open API 사용하기

날씨 단기 예보 받아오기

  • 초단기 예보 사용

    • 활용 가이드 참고하여 요청 보내기
  • request 이용

import requests

serviceKey = 공공데이터포털 서비스키
numOfRows = 1
# 위 값이 받아오는 데이터 수를 정하므로 1을 하면 1개 값만 받아옴 - 원하는 만큼을 설정 해야 함 
pageNo = 1
dataType = 'XML'
base_date, base_time = get_date_time()
nx = 지역 위치 정보(첨부 문서 참조)
ny = 지역 위치 정보(첨부 문서 참조)

# api로 데이터 받아오는 함수 생성
def get_weather():
    req_param = {'ServiceKey': serviceKey,
                 'numOfRows': numOfRows,
                 'pageNo': pageNo,
                 'dataType': dataType,
                 'base_date': base_date,
                 'base_time': base_time,
                 'nx': nx,
                 'ny': ny
                 }
    response = requests.get(url, params=req_param)  # 설정한 파라미터로 데이터를 요청해서 response변수에 저장
    print(response.status_code)  # HTTP status code, 200이면 회신이 이루어짐을 알 수 있음
    print(response.content)
    response_dict = xmltodict.parse(response.text)  # 데이터를 dcit 형태로 파싱
    return response_dict
  • urllib의 urlopen 사용
from urllib.request import urlopen

def get_weather():
    service_key = 공공데이터포털 서비스키
    base_date, base_time = get_date_time()
    num_of_rows = 60
    page_no = 1
    nx = 지역 위치 정보(첨부 문서 참조)
    ny = 지역 위치 정보(첨부 문서 참조)

    api_url = f'http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtFcst?'\
            f'serviceKey={service_key}&base_date={base_date}&base_time={base_time}'\
            f'&nx={nx}&ny={ny}&numOfRows={num_of_rows}&pageNo={page_no}'

    xml_data = urlopen(api_url).read()    
    return xml_data
profile
:D

0개의 댓글