파이썬에서 엑셀을 사용하기 위한 라이브러리
pip install openxyl
공공데이터 포탈 사이트에서 [보건복지부 코로나 현황]을 검색하여 활용신청을 하면, 신청된 API는 1~2시간 후 호출이 가능합니다.
import requests
import re
url = "https://apis.data.go.kr/1352000/ODMS_COVID_04/callCovid04Api?serviceKey=xdF4c2%2FejrJEYFVOOsmUXo4ueNyAunC75B52bGYD%2FO4%2F7GigXR8FTq5hVkarOLnLoNnFZKMS4e8ndavGalT1wA%3D%3D&pageNo=1&numOfRows=500&apiType=xml&std_day=2023-03-02&gubun=%EA%B2%BD%EA%B8%B0" # 공공데이터에 나의 API KEY를 이용하여 페이지에 접속합니다.
response = requests.get(url)
gubun = re.findall(r'<gubun>(.+?)</gubun>', response.text)
incDec = re.findall(r'<incDec>(.+?)</incDec>', response.text)
# 지역, 확진자수를 찾아 출력합니다.
print("지역:", gubun)
print("확진자수:", incDec)
import requests
import re
import datetime
url = "https://apis.data.go.kr/1352000/ODMS_COVID_04/callCovid04Api?serviceKey="
api_key = "xdF4c2%2FejrJEYFVOOsmUXo4ueNyAunC75B52bGYD%2FO4%2F7GigXR8FTq5hVkarOLnLoNnFZKMS4e8ndavGalT1wA%3D%3D"
# 공공데이터포털에서 받은 일반 인증키 API KEY를 입력합니다.
# 오늘의 코로나19 현황을 가져오는 함수를 정의합니다. 날짜, 지역, 확진자수를 반환합니다.
def get_today_covid19(url, api_key):
now = datetime.datetime.now()
yyyymmdd = now.strftime('%Y%m%d')
page_no = "&pageNo=1&numOfRows=10&"
today = "startCreateDt=" + yyyymmdd + "&endCreateDt=" + yyyymmdd
response = requests.get(url + api_key + page_no + today)
gubun = re.findall(r'<gubun>(.+?)</gubun>', response.text)
incDec = re.findall(r'<incDec>(.+?)</incDec>', response.text)
return yyyymmdd, gubun, incDec
날짜, 지역, 확진자수 = get_today_covid19(url, api_key)
# 날짜, 지역, 확진자수의 정보를 get_today_covid19 함수를 이용하여 가져옵니다. 함수의 입력값은 url과 api키를 입력합니다.
print("날짜:", 날짜)
print("지역:", 지역)
print("확진자수:", 확진자수)
import datetime 라이브러리를 통하여 오늘 날짜를 자동으로 입력하여 확진자수를 출력하는 코드
from openpyxl import load_workbook
from openpyxl import Workbook
from openpyxl.styles import Alignment
import requests
import re
import datetime
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))
url = "https://apis.data.go.kr/1352000/ODMS_COVID_04/callCovid04Api?serviceKey=xdF4c2%2FejrJEYFVOOsmUXo4ueNyAunC75B52bGYD%2FO4%2F7GigXR8FTq5hVkarOLnLoNnFZKMS4e8ndavGalT1wA%3D%3D&pageNo=1&numOfRows=500&apiType=xml"
api_key = "xdF4c2%2FejrJEYFVOOsmUXo4ueNyAunC75B52bGYD%2FO4%2F7GigXR8FTq5hVkarOLnLoNnFZKMS4e8ndavGalT1wA%3D%3D"
def get_today_covid19(url, api_key):
now = datetime.datetime.now()
yyyymmdd = now.strftime('%Y%m%d')
page_no = "&pageNo=1&numOfRows=30&"
today = "startCreateDt=" + yyyymmdd + "&endCreateDt=" + yyyymmdd
response = requests.get(url + api_key + page_no + today)
gubun = re.findall(r'<gubun>(.+?)</gubun>', response.text)
incDec = re.findall(r'<incDec>(.+?)</incDec>', response.text)
return yyyymmdd, gubun, incDec
날짜, 지역, 확진자수 = get_today_covid19(url, api_key)
try:
wb = load_workbook("코로나확진자보고서.xlsx", data_only=True)
ws = wb.active
except:
wb = Workbook()
ws = wb.active
ws.cell(row=1, column=1).value = 날짜 + "일 코로나 현황"
ws.merge_cells(start_row=1, end_row=1, start_column=1, end_column=len(확진자수))
ws.cell(row=1, column=1).alignment = Alignment(
horizontal="center", vertical="center")
for i in range(len(확진자수)):
ws.cell(row=2, column=i+1).value = 지역[i]
ws.cell(row=3, column=i+1).value = int(확진자수[i])
wb.save("코로나확진자보고서.xlsx")