API란?
API(Application Programming Interface, 응용 프로그램 인터페이스)는 서로 다른 프로그램이나 서비스가 정보를 주고받을 수 있게 해주는 규칙이나 약속이에요.
쉽게 비유하자면, 식당에서 음식을 주문할 때 메뉴판과 웨이터가 API와 같은 역할을 합니다. 손님(사용자)은 메뉴판(API 문서)을 보고 웨이터(API)에게 원하는 음식(데이터)을 요청하면, 웨이터는 주방(서버)에 가서 요리사(서버 프로그램)에게 주문을 전달하고 완성된 음식을 가져와 손님에게 제공하죠.
API를 이용하면 복잡한 프로그래밍 지식 없이도 다른 서비스의 기능이나 데이터를 내 프로그램에서 쉽게 활용할 수 있답니다.
나이스 공공 개발 포털
상암고 정보
•
교육청코드 : B10
•
학교 코드 : 7010806
상암고 급식정보 요청 api 주소(json 타입)
gpt가 생성해준 상암고 급식 데이터 클리닝 코드
# -*- coding: utf-8 -*-
"""상암고 급식정보 클리닝"""
import requests
import datetime
import pytz
import re
# 오늘 날짜 (YYYYMMDD 형식)
한국시간 = pytz.timezone("Asia/Seoul")
오늘 = datetime.datetime.now(한국시간).strftime("%Y%m%d")
# NEIS API 호출 (서울 서부교육청 B10, 상암고 7010806)
url = f"https://open.neis.go.kr/hub/mealServiceDietInfo?ATPT_OFCDC_SC_CODE=B10&SD_SCHUL_CODE=7010806&Type=json&MLSV_YMD={오늘}"
data = requests.get(url).json()
# 급식 정보 추출
try:
meals = data["mealServiceDietInfo"][1]["row"]
except KeyError:
print("오늘은 급식이 없습니다.")
exit()
# 문자열 클리닝 함수
def clean_menu(menu: str) -> str:
# <br/> 제거 → 줄바꿈
menu = menu.replace("<br/>", "\n")
# 알레르기 번호 제거 (예: "김치(1.5.6.)")
menu = re.sub(r"\([0-9.,]*\)", "", menu)
# 특수문자/여백 정리
menu = re.sub(r"\s+", " ", menu).strip()
return menu
# 출력
print(f"📅 {오늘[:4]}년 {오늘[4:6]}월 {오늘[6:]}일 상암고 급식 메뉴\n")
for meal in meals:
meal_name = meal["MMEAL_SC_NM"] # 조식/중식/석식
menu_raw = meal["DDISH_NM"]
menu_clean = clean_menu(menu_raw)
print(f"🍽 {meal_name}")
print(menu_clean)
print("-" * 30)
Python
복사


