api를 이용하여 기상청 동네예보(초단기실황) 가져오기(exam_api)
페이지 정보
작성자 관리자 댓글 0건 조회 1,119회 작성일 21-07-09 23:26본문
○ 예제에서는 실제 데이터의 모양은 아래와 같으며 json형태(xml이나 다른형태로도 api를 이용하여 불러올수 있음)로 가져왔습니다.
실제 필요한 데이터를 가져오기 위해 노란색 부분을 확인해 보시면 됩니다.
○ 코드실행화면
○ 코드설명
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
- 이전글pyqt5를 이용한 체크박스(checkbox), 콤보박스(combo) 사용법 21.07.22
- 다음글pyqt5와 pyqt5designer를 이용하여 간단한 GUI프로그램 만들기 21.07.02
댓글목록
등록된 댓글이 없습니다.