본문 바로가기
컴퓨터/Python

[Python] 파이썬, 공휴일 조회하여 출력하기 (공공데이터포털)

by sjblog 2022. 5. 5.
반응형

대한민국의 공휴일은 양력뿐만 아니라 음력으로도 세기 때문에 매년 달라질 수 있습니다.

파이썬을 이용하여 대한민국의 국경일 및 공휴일을 조회하여 출력해보겠습니다.

 

 

 

먼저, pytimekr 모듈을 사용해보았으나,

pytimekr의 단점은 정확하지 않다는 것입니다.

예를 들어, pytimekr 모듈은 대통령선거일, 전국동시지방선거, 대체 공휴일 등을 공휴일로 출력하지 못합니다.

 

따라서, 공공데이터포털 한국천문연구원이 제공하는 국경일, 공휴일, 기념일 등을 조회해보겠습니다.

 

 

 

 

<완성본>

  dateKind dateName isHoliday locdate seq
0 01 1월1일 Y 20220101 1
1 01 설날 Y 20220131 1
2 01 설날 Y 20220201 1
3 01 설날 Y 20220202 1
4 01 삼일절 Y 20220301 1
5 01 대통령선거일 Y 20220309 1
6 01 어린이날 Y 20220505 1
7 01 부처님오신날 Y 20220508 1
8 01 전국동시지방선거 Y 20220601 1
9 01 현충일 Y 20220606 1
10 01 광복절 Y 20220815 1
11 01 추석 Y 20220909 1
12 01 추석 Y 20220910 1
13 01 추석 Y 20220911 1
14 01 대체공휴일 Y 20220912 1
15 01 개천절 Y 20221003 1
16 01 한글날 Y 20221009 1
17 01 대체공휴일 Y 20221010 1
18 01 기독탄신일 Y 20221225 1

 

 

 

 

1. 준비물

vscode, Python

 

2. 설치

2-1 공공데이터포털

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

 

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

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

www.data.go.kr

공공데이터포털에 로그인 후, OpenAPI 활용신청을 합니다.

 

마이페이지에서 일반 인증키(Encoding)을 활용할 예정입니다.

 

2-2 패키지 설치

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

pip install 패키지명

 

3. 공공데이터포털 OpenAPI 조회

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(dataframe)
print(dateName.values[0])

 

key에 인증키를 넣어주세요.

url은 그대로 사용해도 되고, 아래 문서를 확인하여 파라미터에 맞게 추가해줍니다.

 

OpenAPI활용가이드_한국천문연구원_천문우주정보__특일_정보제공_서비스_v1.4.docx
0.24MB

 

(위 코드에 사용된 파라미터는 getRestDeInfo: 공휴일, _type: json, numOfRows: 출력개수, Year: 해당 연도 입니다.)

(_type=json으로 선택하여 응답 데이터를 json형식으로 조회하였습니다.)

 

반응형