본문 바로가기

Python/파이썬 프로젝트

파이썬 API 활용의 기초 2 - 나이스 OPEN API 활용

 

이론

json 파일

JSON (JavaScript Object Notation)은 데이터를 주고받을 때 사용하는 간결하고 유연한 데이터 포맷입니다. 이는 특히 웹에서 많이 사용되는데, 서버와 클라이언트 사이, 또는 애플리케이션과 API 사이에서 데이터를 교환할 때 이 JSON 포맷이 사용됩니다.

JSON 파일은 텍스트 기반의 데이터 형식으로, .json 확장자를 가진 파일입니다. JSON 데이터는 "키-값" 쌍이나 배열 형태로 표현됩니다. 이러한 키-값 쌍은 파이썬의 딕셔너리나 자바의 맵과 같은 데이터 구조와 비슷합니다.

JSON의 간단한 예시는 다음과 같습니다:

{
    "이름": "홍길동",
    "나이": 25,
    "성별": "남자",
    "취미": ["독서", "영화보기", "여행"]
}

API에서 JSON 파일을 사용하는 이유는 여러 가지가 있습니다. JSON은 사람이 읽고 쓰기 쉽고, 또한 기계가 분석하고 생성하기도 쉽습니다. 또한 JSON은 거의 모든 프로그래밍 언어에서 지원되기 때문에, API를 통해 데이터를 교환할 때 일반적으로 JSON 형식이 사용됩니다.

 

파이썬 딕셔너리 자료형

파이썬의 딕셔너리(Dictionary)는 키(Key)와 값(Value)으로 이루어진 쌍을 원소로 갖는 자료형입니다. 이러한 키-값 쌍은 묶음 형태로 저장되며, 키를 통해 값에 접근할 수 있습니다.

딕셔너리는 중괄호 {} 안에 각 키-값 쌍을 콜론 :으로 연결하여 정의합니다. 각 원소는 쉼표 ,로 구분됩니다.

예를 들어, 다음은 간단한 딕셔너리의 예입니다:

my_dict = {
    "apple": "red",
    "banana": "yellow",
    "cherry": "red"
}


위의 딕셔너리에서 "apple", "banana", "cherry"는 키들이며, "red", "yellow"는 각각의 키에 해당하는 값들입니다. 이를 통해 특정 과일의 색상을 다음과 같이 찾을 수 있습니다:


print(my_dict["apple"])  # 출력: red


키-값 쌍을 추가하거나 변경하려면, 해당 키를 사용하여 값을 할당하면 됩니다:

my_dict["apple"] = "green"  # apple의 색을 red에서 green으로 변경
my_dict["orange"] = "orange"  # 새로운 키-값 쌍 추가


딕셔너리는 데이터를 효율적으로 저장하고 검색할 수 있게 해주므로, 파이썬에서 매우 유용한 자료형입니다. 또한 JSON과 유사한 구조를 가지기 때문에 웹 개발, 데이터 분석 등 많은 분야에서 사용됩니다.

 

 

실습 . 우리학교 급식정보 가져오기

1. 나이스 교육정보 개방 포털 오픈 API 확인하기

https://open.neis.go.kr/portal/guide/apiIntroPage.do

 

Open API 소개 | 나이스 교육정보 개방 포털

Open API란? API는 응용프로그램이나 서비스를 개발하는데 필요한 운영체제(OS)나 라이브러리 등의 특정 기능을 추상화하여 사용하기 쉽도록 만든 인터페이스로 Single UNIX Specification, Windows API 등을

open.neis.go.kr

 

2. 우리학교의 표준학교코드와 교육청 코드 확인하기

 

학교기본정보 | 데이터셋 상세 Sheet | 나이스 교육정보 개방 포털

내용 - 학교 기본정보에 대한 학교명, 소재지, 주소, 전화번호, 홈페이지주소, 남녀공학여부, 주야구분, 개교기념일 등을 확인할 수 있는 현황입니다. - 폐교 현황은 학교알리미http://www.schoolinfo.go

open.neis.go.kr

 

3. 급식정보 api에서 신청인자와 필수인자를 확인하고 url 샘플을 통해 api url 구조를 이해한다.

 

급식식단정보 | 데이터셋 상세 Open API | 나이스 교육정보 개방 포털

메타 정보 메타 정보 상세 분류명 교육여건 > 급식식단 DATA 개방일 2019-04-01 태그 급식식단정보, 학교급식, 급식정보, 요리명 제공 기관 교육부, 17개 시도교육청 적재 주기 매일 이용 허락 범위 이

open.neis.go.kr

 

테스트 URL : 상암고등학교 23년 7월 13일 점심 정보 요청 API URL

 

https://open.neis.go.kr/hub/mealServiceDietInfo?Type=json&pIndex=1&pSize=100&ATPT_OFCDC_SC_CODE=B10&SD_SCHUL_CODE=7010806&MLSV_YMD=230713  

위 내용을 확인하여 우리학교 오늘 급식 정보를 요청하는 URL을 생성한다.

 

json 자료를 구조적으로 보기위해 json viewer 프로그램으로 다시 확인한다.

 

Online JSON Viewer

 

jsonviewer.stack.hu

 

API 크롤링 파이썬코드를 작성한다.

 

스스로해보기. 급식정보요청 함수생성

 

결과 확인

 

 

 

실습 전체 코드( 실습 후 확인 권장)

 

 

@ Wonking Python Class 2023