# neispy
> **동기와 비동기 전부 지원합니다.** **문제 발생시 이슈 넣어주세요!**
[![GitHub license](https://img.shields.io/github/license/SaidBySolo/neispy)](https://github.com/SaidBySolo/neispy/blob/master/LICENSE)
![Python package](https://github.com/SaidBySolo/neispy/workflows/Python%20package/badge.svg)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/neispy)](https://pypi.org/project/neispy/)
기초적인 사용법은 [이곳](https://www.koreaminecraft.net/dev_portal/1790805)을 봐주세요!
api키는 [이곳](https://open.neis.go.kr/portal/guide/actKeyPage.do)에서 받으실 수 있습니다.
[open Neis api](https://open.neis.go.kr/)의 모든 엔드포인트가 래핑되어있습니다
```sh
pip install neispy
```
## 업데이트 방법
```sh
pip install --upgrade neispy
```
## 사용 예시(비동기)
```py
import neispy
import asyncio
name = "인천석천초등학교"
async def main():
# 필수인자가 들어가는곳입니다. API키,json,xml등 받을방식등등..
# 아무값이 없으니 샘플키로 요청합니다.
neis = neispy.Client()
# 학교이름으로 학교정보를 요청하고 교육청코드 와 학교코드로 가져옵니다.
scinfo = await neis.schoolInfo(SCHUL_NM=name)
AE = scinfo[0].ATPT_OFCDC_SC_CODE # 교육청코드
SE = scinfo[0].SD_SCHUL_CODE # 학교코드
# 학교코드와 교육청 코드로 2019년 1월 22일의 급식 정보 요청
scmeal = await neis.mealServiceDietInfo(AE, SE, MLSV_YMD=20190122)
meal = scmeal[0].DDISH_NM.replace("<br/>", "\n") # 줄바꿈으로 만든뒤 출력
# 학교코드와 교육청 코드로 2019년 3월 7일날 학사일정 요청
scschedule = await neis.SchoolSchedule(AE, SE, AA_YMD=20190307)
schedule = scschedule[0].EVENT_NM # 학사일정명 가져옴
# 학교코드와 교육청 코드로 초등학교의 2020년 1월 22일의 시간표가져옴
sctimetable = await neis.timeTable("els", AE, SE, 2019, 2, 20200122, 1, 1)
timetable = [i.ITRT_CNTNT for i in sctimetable] # 리스트로 만듬
academyinfo = await neis.acaInsTiInfo(AE) # 교육청 코드로 학원및 교습소 정보 요청
academy = academyinfo[0].ACA_NM # 학교이름 출력
scclass = await neis.classInfo(AE, SE, GRADE=1) # 학교코드와 교육청 코드로 1학년의 모든 반정보 요청
class_info = [i.CLASS_NM for i in scclass] # 리스트로만듬
hiscinfo = await neis.schoolInfo(SCHUL_NM="인천기계") # 다른정보를 위해 공고로 가져옴
hAE = hiscinfo[0].ATPT_OFCDC_SC_CODE # 교육청코드
hSE = hiscinfo[0].SD_SCHUL_CODE # 학교코드
scmajorinfo = await neis.schoolMajorinfo(hAE, hSE) # 학과정보 요청
majorinfo = [m.DDDEP_NM for m in scmajorinfo] # 리스트로 만듬
scAflcoinfo = await neis.schulAflcoinfo(hAE, hSE) # 학교 계열정보 요청
Aflco = [a.ORD_SC_NM for a in scAflcoinfo]
sctiClrm = await neis.tiClrminfo(hAE, hSE) # 시간표 강의실 정보 요청
tiClem = [t.CLRM_NM for t in sctiClrm]
print(AE)
print(SE)
print(meal)
print(schedule)
print(academy)
print(class_info)
print(timetable)
print(majorinfo)
print(Aflco)
print(tiClem)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
#출력값
#E10
#7341038
#보리밥
#사과
#비엔나소시지케첩조림2.5.6.10.12.13.
#궁중떡볶이1.5.6.13.
#알타리김치9.13.
#청국장찌개(신)5.9.13.
#학급임원선거
#A+수학교습소
#['1', '2', '3', '4', '5']
#['즐거운생활', '수학', '국어', '즐거운생활']
#['기계과', '공동실습소', '건축과', '건축디자인과', '금속과']
#['공업계', '공동실습소', '공업계']
#['건축1-1', '건축1-2', '도시1-1', '도시1-2', '메카1-1']
```
## 사용 예시(동기)
```py
import neispy
name = "인천석천초등학교"
def main():
# 필수인자가 들어가는곳입니다. API키,json,xml등 받을방식등등..
# 아무값이 없으니 샘플키로 요청합니다.
neis = neispy.Client()
# 학교이름으로 학교정보를 요청하고 교육청코드 와 학교코드로 가져옵니다.
scinfo = neis.schoolInfo(SCHUL_NM=name)
AE = scinfo[0].ATPT_OFCDC_SC_CODE # 교육청코드
SE = scinfo[0].SD_SCHUL_CODE # 학교코드
# 학교코드와 교육청 코드로 2019년 1월 22일의 급식 정보 요청
scmeal = neis.mealServiceDietInfo(AE, SE, MLSV_YMD=20190122)
meal = scmeal[0].DDISH_NM.replace("<br/>", "\n") # 줄바꿈으로 만든뒤 출력
# 학교코드와 교육청 코드로 2019년 3월 7일날 학사일정 요청
scschedule = neis.SchoolSchedule(AE, SE, AA_YMD=20190307)
schedule = scschedule[0].EVENT_NM # 학사일정명 가져옴
# 학교코드와 교육청 코드로 초등학교의 2020년 1월 22일의 시간표가져옴
sctimetable = neis.timeTable("els", AE, SE, 2019, 2, 20200122, 1, 1)
timetable = [i.ITRT_CNTNT for i in sctimetable] # 리스트로 만듬
academyinfo = neis.acaInsTiInfo(AE) # 교육청 코드로 학원및 교습소 정보 요청
academy = academyinfo[0].ACA_NM # 학교이름 출력
scclass = neis.classInfo(AE, SE, GRADE=1) # 학교코드와 교육청 코드로 1학년의 모든 반정보 요청
class_info = [i.CLASS_NM for i in scclass] # 리스트로만듬
hiscinfo = neis.schoolInfo(SCHUL_NM="인천기계") # 다른정보를 위해 공고로 가져옴
hAE = hiscinfo[0].ATPT_OFCDC_SC_CODE # 교육청코드
hSE = hiscinfo[0].SD_SCHUL_CODE # 학교코드
scmajorinfo = neis.schoolMajorinfo(hAE, hSE) # 학과정보 요청
majorinfo = [m.DDDEP_NM for m in scmajorinfo] # 리스트로 만듬
scAflcoinfo = neis.schulAflcoinfo(hAE, hSE) # 학교 계열정보 요청
Aflco = [a.ORD_SC_NM for a in scAflcoinfo]
sctiClrm = neis.tiClrminfo(hAE, hSE) # 시간표 강의실 정보 요청
tiClem = [t.CLRM_NM for t in sctiClrm]
print(AE)
print(SE)
print(meal)
print(schedule)
print(academy)
print(class_info)
print(timetable)
print(majorinfo)
print(Aflco)
print(tiClem)
main()
#출력값
#E10
#7341038
#보리밥
#사과
#비엔나소시지케첩조림2.5.6.10.12.13.
#궁중떡볶이1.5.6.13.
#알타리김치9.13.
#청국장찌개(신)5.9.13.
#학급임원선거
#A+수학교습소
#['1', '2', '3', '4', '5']
#['즐거운생활', '수학', '국어', '즐거운생활']
#['기계과', '공동실습소', '건축과', '건축디자인과', '금속과']
#['공업계', '공동실습소', '공업계']
#['건축1-1', '건축1-2', '도시1-1', '도시1-2', '메카1-1']
```
## 인자값
| 변수명 | 타입 | 변수 설명 | 설명 |
| ------ | ------------- | -------------------- | --------------------------------- |
| KEY | STRING(필수) | 인증키 | 기본값 : sample key |
| Type | STRING(필수) | 호출 문서(xml, json) | 기본값 : json |
| pIndex | INTEGER(필수) | 페이지 위치 | 기본값 : 1(sample key는 1 고정) |
| pSize | INTEGER(필수) | 페이지 당 신청 숫자 | 기본값 : 100(sample key는 5 고정) |
* [데이터셋](https://open.neis.go.kr/portal/data/dataset/searchDatasetPage.do)
**시간표 같은 부분은 초,중,고,특수인걸 제외하고는 모두 같습니다.**
**Attribute도 데이터셋을 참고해주시기바랍니다.**
## Patch note
### 3.1.0
* #40(#39번 이슈) PR적용
### 3.0.0
* #28(#17번 이슈) #31(#30번 이슈) #34(#33번 이슈) #36 PR적용
* 동기 비동기 클라이언트를 나누지않고 사용할수있습니다.
* 모델
PyPI 官网下载 | neispy-3.1.0.tar.gz
版权申诉
130 浏览量
2022-01-28
20:45:06
上传
评论
收藏 12KB GZ 举报
挣扎的蓝藻
- 粉丝: 13w+
- 资源: 15万+
最新资源
- 基于C#和NET MAUI开发的音乐播放器+源代码+文档说明+sln.zip
- 基于python+flask+mysql实现的豆瓣电影可视化系统+源代码+文档说明+数据库sql.zip
- 程氏舞曲V4.2程氏舞曲V4.2程氏舞曲V4.2程氏舞曲V4.2
- FPGA读写 AD9708+ AD9280 ADDA实验Verilog逻辑源码Quartus工程文件+文档说明+硬件参考原理图
- 基于CH340C设计USB转TLL串口通信模块PADS 9.5设计硬件(原理图+PCB)文件.zip
- 信号与系统大作业-图像处理 实现了直接滤波法维纳滤波法最小二乘滤波法LR递归法matlab源码.zip
- php-leetcode题解之最小栈.zip
- php-leetcode题解之最长不含重复字符的子字符串.zip
- php-leetcode题解之最长公共前缀.zip
- php-leetcode题解之最小差值.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈