콘솔워크

파이썬 공휴일 가져오기 (++공공데이터 활용) python holidays 공휴일 포함 본문

프로그래밍/python

파이썬 공휴일 가져오기 (++공공데이터 활용) python holidays 공휴일 포함

콘솔워크 2022. 9. 8. 10:50
반응형

파이썬 공휴일 가져오려면 공공데이터 활용하는게 좋다. 왜냐하면 다른 라이브러리를 대체공휴일 같은 정보를 가져올 수 없기 때문이다. 

 

1. 인증키 획득

2. 파이썬 패키지 설치 

3. 소스코드 확인

 

1. 인증키 획득

일단 사용을 위해서는 공공데이터포털에서 인증키를 가져와야한다.

 

공공데이터포탈 회원 없는 사람은 먼저 회원가입부터하고 로그인하고 접속한다.

https://www.data.go.kr/data/15012690/openapi.do

 

한국천문연구원_특일 정보

(천문우주정보)국경일정보, 공휴일정보, 기념일정보, 24절기정보, 잡절정보를 조회하는 서비스 입니다. 활용시 날짜, 순번, 특일정보의 분류, 공공기관 휴일 여부, 명칭을 확인할 수 있습니다.

www.data.go.kr

 

2. 라이브러리 설치

pip install pandas, requests

 

 

3. 파이썬 소스코드

from datetime import datetime
import requests
import json
import pandas as pd
from pandas import json_normalize


class KoreaHolidays:
    def __init__(self):
        pass

    def get_holidays(self):
        today = datetime.today().strftime("%Y%m%d")
        today_year = datetime.today().year

        KEY = "공공데이터 포탈 인코딩된 인증키"
        url = (
            "http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getRestDeInfo?_type=json&numOfRows=50&solYear="
            + str(today_year)
            + "&ServiceKey="
            + str(KEY)
        )
        response = requests.get(url)
        if response.status_code == 200:
            json_ob = json.loads(response.text)
            holidays_data = json_ob["response"]["body"]["items"]["item"]
            dataframe = json_normalize(holidays_data)
        # dateName = dataframe.loc[dataframe["locdate"] == int(today), "dateName"]
        # print(dateName)
        return dataframe["locdate"].to_list()

    def today_is_holiday(self):
        _today = datetime.now().strftime("%Y%m%d")
        holidays = self.get_holidays()
        # holidays.append(20220908)
        print(holidays)
        is_holiday = False
        if int(_today) in holidays:
            is_holiday = True
        print(is_holiday)
        return is_holiday


if __name__ == "__main__":

    koreaHolidays = KoreaHolidays()
    koreaHolidays.today_is_holiday()

 

반응형