728x90
자동으로 돌아가는 코드를 만드는데,
주말과 공휴일은 빼고 돌아야한다면 어떨까요??
크론텝으로 월-금은 설정이 가능하지만,, 공휴일 정보는 어떡하죠!?
그래서 준비했습니다!!!
공공API의 공휴일 정보!!!
ㅁ 공공 API : https://www.data.go.kr/data/15012690/openapi.do
빠르게 코드로 알아보겠습니다!!
import requests
import datetime
import xmltodict
import json
url = 'http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getRestDeInfo'
params ={'serviceKey' : 'FFtJr1LXUzBzUV2+A7MaYJc7fxDLjWwV+/ENOUgE7eATUYnxBJMY6FZ1BtDkpkzIJ73/NFEQiLsuIhw01cZAOg=='
, 'solYear' : datetime.datetime.now().strftime('%Y') #'2015'
, 'solMonth' : datetime.datetime.now().strftime('%m') }
response = requests.get(url, params=params)
# 바이트 데이터를 UTF-8로 디코딩
decoded_xml = response.content.decode('utf-8')
# XML을 Python 딕셔너리로 변환
xml_dict = xmltodict.parse(decoded_xml)
# Python 딕셔너리를 JSON 형식으로 변환
json_data = json.loads(json.dumps(xml_dict, ensure_ascii=False, indent=4))
API에서 다 처리해주기에 그냥 호출하고 json으로 만듬
위와 같이 간단히 만들어주는데요~~
이에!! 아래와 같이해서
import requests
import datetime
import xmltodict
import json
import sys
url = 'http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getRestDeInfo'
params ={'serviceKey' : '{내가 신청하고받은 KEY}'
, 'solYear' : datetime.datetime.now().strftime('%Y') #'2015' 와같이 연도 입력
, 'solMonth' : datetime.datetime.now().strftime('%m') }
response = requests.get(url, params=params)
# 바이트 데이터를 UTF-8로 디코딩
decoded_xml = response.content.decode('utf-8')
# XML을 Python 딕셔너리로 변환
xml_dict = xmltodict.parse(decoded_xml)
# Python 딕셔너리를 JSON 형식으로 변환
json_data = json.loads(json.dumps(xml_dict, ensure_ascii=False, indent=4))
# 결과 출력
print(json_data)
## 공휴일인지!!
skip_YN = 'N'
for holiday in json_data['response']['body']['items']['item']:
if datetime.datetime.now().strftime('%Y%m%d') in holiday['locdate']:
skip_YN = 'Y'
## 휴일인지 판단!!
if datetime.datetime.today().weekday() in [6,7]:
skip_YN = 'Y'
skip_YN
if skip_Y[:1] =='Y':
print(f"오늘{datetime.datetime.now().strftime('%Y%m%d')} 은 {skip_YN} 쉬는날로 스킵!!")
sys.exit()
휴일이라면 바로 스킵되게 할수 있습니다~~~
참 쉽죠!!!
728x90
'데이터&AI > 기타개발' 카테고리의 다른 글
[realtime GPT를 쓰기위한 사전학습] queue 의 이해 (python. 줄을 서시오!! FIFO) (2) | 2024.10.18 |
---|---|
[realtime GPT를 쓰기위한 사전학습] threading의 이해 (python의 멀티태스킹!) (1) | 2024.10.17 |
[Deepvoice] 내 목소리를 학습, 파일을 생성해보자!! (클릭만하면됨) (2) | 2024.09.05 |
[snowflake] 무작정 시작하기 with Python ② - 데이터 올리기 (0) | 2024.08.17 |
[snowflake] 무작정 시작하기 with Python ① - 가입 및 Connection맺기 (0) | 2024.08.17 |
댓글