2020 공개SW 개발자 대회 조직위원장 특별상 수상 작품
동기와 비동기 전부 지원합니다. 문제 발생시 이슈 넣어주세요!
api키는 이곳에서 받으실 수 있습니다.
open neis api의 모든 엔드포인트가 래핑되어 있습니다.
pip install neispy
pip install --upgrade neispy
from neispy import Neispy
from asyncio.events import get_event_loop
async def main():
# 필수 인자가 들어가는 곳입니다. API키 등등..
# 아무런 값이 없으니 샘플 키로 요청합니다.
async with Neispy() as neis:
# 학교 이름으로 학교 정보를 요청하고 교육청 코드 와 학교 코드로 가져옵니다.
scinfo = await neis.schoolInfo(SCHUL_NM="인천동방초등학교")
row = scinfo.schoolInfo[1].row[0]
AE = row.ATPT_OFCDC_SC_CODE # 교육청 코드
SE = row.SD_SCHUL_CODE # 학교 코드
# 학교 코드와 교육청 코드로 2022년 5월 23일의 급식 정보 요청
scmeal = await neis.mealServiceDietInfo(
ATPT_OFCDC_SC_CODE=AE, SD_SCHUL_CODE=SE, MLSV_YMD="20220523"
)
row = scmeal.mealServiceDietInfo[1].row[0]
meal = row.DDISH_NM.replace("<br/>", "\n") # 줄바꿈으로 만든 뒤 출력
# 학교 코드와 교육청 코드로 2022년 6월 1일날 학사일정 요청
scschedule = await neis.SchoolSchedule(
ATPT_OFCDC_SC_CODE=AE, SD_SCHUL_CODE=SE, AA_YMD=20220601
)
row = scschedule.SchoolSchedule[1].row[0]
schedule = row.EVENT_NM # 학사일정명 가져옴
# 학교 코드와 교육청 코드로 초등학교의 2022년 5월 23일의 시간표가져옴
sctimetable = await neis.elsTimetable(
ATPT_OFCDC_SC_CODE=AE,
SD_SCHUL_CODE=SE,
AY="2022",
SEM="1",
ALL_TI_YMD=20220523,
GRADE="1",
PERIO=1,
)
timetable = [i.ITRT_CNTNT for i in sctimetable.elsTimetable[1].row] # 리스트로 만듦
academyinfo = await neis.acaInsTiInfo(
ATPT_OFCDC_SC_CODE=AE
) # 교육청 코드로 학원및 교습소 정보 요청
academy = academyinfo.acaInsTiInfo[1].row[0].ACA_NM # 학교이름 출력
scclass = await neis.classInfo(
ATPT_OFCDC_SC_CODE=AE, SD_SCHUL_CODE=SE, GRADE="1"
) # 학교 코드와 교육청 코드로 1학년의 모든 반 정보 요청
class_info = [i.CLASS_NM for i in scclass.classInfo[1].row] # 리스트로 만듦
hiscinfo = await neis.schoolInfo(SCHUL_NM="인천기계") # 다른 정보를 위해 공고로 가져옴
hirow = hiscinfo.schoolInfo[1].row[0]
hAE = hirow.ATPT_OFCDC_SC_CODE # 교육청 코드
hSE = hirow.SD_SCHUL_CODE # 학교 코드
scmajorinfo = await neis.schoolMajorinfo(
ATPT_OFCDC_SC_CODE=hAE, SD_SCHUL_CODE=hSE
) # 학과 정보 요청
majorinfo = [m.DDDEP_NM for m in scmajorinfo.schoolMajorinfo[1].row] # 리스트로 만듦
scAflcoinfo = await neis.schulAflcoinfo(
ATPT_OFCDC_SC_CODE=hAE, SD_SCHUL_CODE=hSE
) # 학교 계열 정보 요청
Aflco = [a.ORD_SC_NM for a in scAflcoinfo.schulAflcoinfo[1].row]
sctiClrm = await neis.tiClrminfo(
ATPT_OFCDC_SC_CODE=hAE, SD_SCHUL_CODE=hSE
) # 시간표 강의실 정보 요청
tiClem = [t.CLRM_NM for t in sctiClrm.tiClrminfo[1].row]
print(AE)
print(SE)
print(meal)
print(schedule)
print(academy)
print(class_info)
print(timetable)
print(majorinfo)
print(Aflco)
print(tiClem)
get_event_loop().run_until_complete(main())
# 출력값
# E10
# 7341025
# 보리밥c
# 감자국c (5.6.9.13.)
# 순대볶음c (5.6.10.13.)
# 고구마돈가스c (1.2.5.6.10.12.13.)
# 배추김치 (9.13.)
# 참외
# 지방선거일
# A+수학교습소
# ['1', '2', '3', '4', '1']
# ['국어', '수학', '즐거운생활', '즐거운생활', '봉사활동']
# ['공동실습소', '건축과', '건축디자인과', '금속과', '기계공작과']
# ['공동실습소', '공업계', '공업계']
# ['건축1-1', '건축1-2', '도시1-1', '도시1-2', '메카1-1']
from neispy import Neispy
def main():
# 필수 인자가 들어가는 곳입니다. API키 등등..
# 아무런 값이 없으니 샘플 키로 요청합니다.
neis = Neispy.sync()
# 학교 이름으로 학교 정보를 요청하고 교육청 코드 와 학교 코드로 가져옵니다.
scinfo = neis.schoolInfo(SCHUL_NM="인천동방초등학교")
row = scinfo.schoolInfo[1].row[0]
AE = row.ATPT_OFCDC_SC_CODE # 교육청 코드
SE = row.SD_SCHUL_CODE # 학교 코드
# 학교 코드와 교육청 코드로 2022년 5월 23일의 급식 정보 요청
scmeal = neis.mealServiceDietInfo(
ATPT_OFCDC_SC_CODE=AE, SD_SCHUL_CODE=SE, MLSV_YMD="20220523"
)
row = scmeal.mealServiceDietInfo[1].row[0]
meal = row.DDISH_NM.replace("<br/>", "\n") # 줄바꿈으로 만든 뒤 출력
# 학교 코드와 교육청 코드로 2022년 6월 1일날 학사일정 요청
scschedule = neis.SchoolSchedule(
ATPT_OFCDC_SC_CODE=AE, SD_SCHUL_CODE=SE, AA_YMD=20220601
)
row = scschedule.SchoolSchedule[1].row[0]
schedule = row.EVENT_NM # 학사일정명 가져옴
# 학교 코드와 교육청 코드로 초등학교의 2022년 5월 23일의 시간표가져옴
sctimetable = neis.elsTimetable(
ATPT_OFCDC_SC_CODE=AE,
SD_SCHUL_CODE=SE,
AY="2022",
SEM="1",
ALL_TI_YMD=20220523,
GRADE="1",
PERIO=1,
)
timetable = [i.ITRT_CNTNT for i in sctimetable.elsTimetable[1].row] # 리스트로 만듦
academyinfo = neis.acaInsTiInfo(ATPT_OFCDC_SC_CODE=AE) # 교육청 코드로 학원및 교습소 정보 요청
academy = academyinfo.acaInsTiInfo[1].row[0].ACA_NM # 학교이름 출력
scclass = neis.classInfo(
ATPT_OFCDC_SC_CODE=AE, SD_SCHUL_CODE=SE, GRADE="1"
) # 학교 코드와 교육청 코드로 1학년의 모든 반 정보 요청
class_info = [i.CLASS_NM for i in scclass.classInfo[1].row] # 리스트로 만듦
hiscinfo = neis.schoolInfo(SCHUL_NM="인천기계") # 다른 정보를 위해 공고로 가져옴
hirow = hiscinfo.schoolInfo[1].row[0]
hAE = hirow.ATPT_OFCDC_SC_CODE # 교육청 코드
hSE = hirow.SD_SCHUL_CODE # 학교 코드
scmajorinfo = neis.schoolMajorinfo(
ATPT_OFCDC_SC_CODE=hAE, SD_SCHUL_CODE=hSE
) # 학과 정보 요청
majorinfo = [m.DDDEP_NM for m in scmajorinfo.schoolMajorinfo[1].row] # 리스트로 만듦
scAflcoinfo = neis.schulAflcoinfo(
ATPT_OFCDC_SC_CODE=hAE, SD_SCHUL_CODE=hSE
) # 학교 계열 정보 요청
Aflco = [a.ORD_SC_NM for a in scAflcoinfo.schulAflcoinfo[1].row]
sctiClrm = neis.tiClrminfo(
ATPT_OFCDC_SC_CODE=hAE, SD_SCHUL_CODE=hSE
) # 시간표 강의실 정보 요청
tiClem = [t.CLRM_NM for t in sctiClrm.tiClrminfo[1].row]
print(AE)
print(SE)
print(meal)
print(schedule)
print(academy)
print(class_info)
print(timetable)
print(majorinfo)
print(Aflco)
print(tiClem)
main()
# 출력값
# E10
# 7341025
# 보리밥c
# 감자국c (5.6.9.13.)
# 순대볶음c (5.6.10.13.)
# 고구마돈가스c (1.2.5.6.10.12.13.)
# 배추김치 (9.13.)
# 참외
# 지방선거일
# A+수학교습소
# ['1', '2', '3', '4', '1']
# ['국어', '수학', '즐거운생활', '즐거운생활', '봉사활동']
# ['공동실습소', '건축과', '건축디자인과', '금속과', '기계공작과']
# ['공동실습소', '공업계', '공업계']
# ['건축1-1', '건축1-2', '도시1-1', '도시1-2', '메카1-1']
데이터셋을 참고해주세요.
반환되는 객체의 경우 docstring이 적용되어있어 vscode와 같은 텍스트 에디터나 IDE에서 속성을 확인할 수 있습니다.
위의 예제를 참고해주세요.