api를 이용하여 기상청 동네예보(초단기실황) 가져오기(exam_api) > [파이썬]기초실습예제

본문 바로가기
사이트 내 전체검색

[파이썬]기초실습예제

게시판 상단

api를 이용하여 기상청 동네예보(초단기실황) 가져오기(exam_api)

페이지 정보

작성자 관리자 댓글 0건 조회 1,119회 작성일 21-07-09 23:26

본문

 

○ 예제에서는 실제 데이터의 모양은 아래와 같으며 json형태(xml이나 다른형태로도 api 이용하여 불러올수 있음) 가져왔습니다.

실제 필요한 데이터를 가져오기 위해 노란색 부분을 확인해 보시면 됩니다.

1fdebf1619f4754ad299410054b2461d_1625841067_8574.JPG 

○ 코드실행화면

1fdebf1619f4754ad299410054b2461d_1625840660_4051.JPG


○ 코드설명

from urllib.parse import urlencode, unquote
import requests
import json

#아래의 공공데이터 링크에서 동네예보와 초단기실황 등 api 가이드를 다운받을수 있습니다.
#
이 코드는 초단기 실황을 가져오는 api를 이용했습니다.
# https://www.data.go.kr/data/15084084/openapi.do

#
아래의 링크를 통해 실제 json파일 확인가능, 기상정보 api는 최근1일간의 데이터만 제공하므로 base_date 에는
# 현재날짜로 변경해야 제대로 값을 가져옴,인증키 부분에는 공공데이터 포털에서 신청한 인증키를 입력해야함

ls_url = "http://apis.data.go.kr/1360000/VilageFcstInfoService/getUltraSrtNcst"
ls_url2 = "?" + urlencode(
        {
               
"ServiceKey" : unquote("인증키"),
               
"base_date" : "20210709",
               
"base_time" : "1400",
               
"nx" : 55,
               
"ny" : 125,
               
"numOfRows" : "10",
               
"pageNo" : 1,
               
"dataType" : "JSON",
       
}
)
ls_queryurl = ls_url + ls_url2
# 위에 있는 ls_queryurl 대신에 아래의 한줄을 사용하여도 됨
# ls_queryurl= "http://apis.data.go.kr/1360000/VilageFcstInfoService/getUltraSrtNcst?ServiceKey=인증키&base_date=20210709&base_time=1500&nx=55&ny=125&numOfRows=10&pageNo=1&dataType=JSON"

response = requests.get(ls_queryurl) #해당url주소의 데이터를 가져와서 response에 담는다

ls_dict = json.loads(response.text) #json문자열을 파이썬 객체로 변환한다.
ls_response = ls_dict.get("response")
ls_body = ls_response.get(
"body")
ls_items = ls_body.get(
"items")
ls_item = ls_items.get(
"item")

result={}
# result라는 딕셔너리 변수를 선언함, 딕셔너리는 초기화를 해야 사용할수 있다
result_dict={}  # result_dict라는 키와 값을 담아둘 딕셔너리를 선언하고 초기화를 시킨다.

#
루프문에서 result_dict 에는 키와 값을 담아둔다 예)result_dict['PTY']='0'  , result_status['REH']='97'
for item in ls_item:  #ls_item에 들어있는 배열의 개수만큼 반복함
   
result=item
   
print(result)
    result_dict.setdefault(result.get(
"category"),result.get("obsrValue"))


print("인천 부평구 동네예보(초단기실황)데이터")
print("날짜 : "+result.get("baseDate")[:-4]+""+result.get("baseDate")[4:-2]+""+result.get("baseDate")[6:]+""+"시간 : " + result.get("baseTime")[:-2]+"")
print("강우형태 : "+result_dict["PTY"])
print("습도 : "+result_dict["REH"]+" %")
print("1시간 강수량 : " +result_dict["RN1"]+" mm")
print("기온 : "+result_dict["T1H"] +" ")
print("동서바람성분 : " +result_dict["UUU"]+" m/s")
print("남북바람성분 : " + result_dict["VVV"]+" m/s")
print("풍향 : "+result_dict["VEC"])
print("풍속 : "+result_dict["WSD"])

 

 


첨부파일

  • exam_api.py (2.8K) 24회 다운로드 | DATE : 2021-07-09 23:26:22

댓글목록

등록된 댓글이 없습니다.

게시판 하단

회원로그인

접속자집계

오늘
6
어제
7
최대
221
전체
17,029

그누보드5
Copyright © 소유하신 도메인. All rights reserved.