반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

블로그

[학습] 공공데이터포털에서 공휴일 데이터 가져오기 본문

공부

[학습] 공공데이터포털에서 공휴일 데이터 가져오기

beenu 2024. 4. 2. 02:11
반응형

1) 공공데이터포털에 접속해서 한국천문연구원_특일 정보를 검색한 후, 우측에 보이는 활용신청을 누르기

활용신청하면 API키 발급됨. API키는 마이페이지에서 확인할 수 있음

API키가 인코딩, 디코딩 두 개가 있는데 디코딩 키로 하니까 잘 가져와짐

 

 

2) 오픈 API 상세 페이지 하단에서 요청변수와 출력결과, 샘플코드를 확인할 수 있음

 

 

3) 활용해서 코드 짜면 완성 ~ 결과값을 response.context 또는 response.text를 사용해서 출력해보고  필요한 부분만 추출해서 사용하면 됨

이 데이터는 xml 형태로 제공되길래 xmltodict라는 라이브러리를 사용해서 데이터프레임으로 바꾼 후 사용했

import requests
import pandas as pd
import json
import xmltodict

REST_API_KEY = 'YOUR_API_KEY'
url = 'http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getRestDeInfo'

temp = pd.DataFrame()

for year in range(2015, 2024):
    params = {'serviceKey' : REST_API_KEY, 'solYear' : f'{year}', 'numOfRows':50}
    response = requests.get(url, params=params)
    # xml파일의 경우 response.text를 해야 한글이 번역돼서 나온다
    temp = pd.concat([temp, pd.DataFrame(xmltodict.parse(response.text)['response']['body']['items']['item'])], axis=0)
    
temp.drop(['dateKind', 'dateName', 'seq'], axis=1, inplace=True)
temp = temp[['locdate', 'isHoliday']]
temp.rename(columns={
    'locdate':'Date',
    'isHoliday':'holiday'
}, inplace=True)
temp['Date'] = pd.to_datetime(df['Date'])
temp['holiday'] = 1
728x90
반응형