728x90
반응형
키움 OpenApi+ 개발가이드에 보면 7.에러코드표가 있다.
이 에러코드표를 파이썬에서 사용하려고 할 때 어떤 자료형이 좋을까? 튜플에 넣어서 사용하는 것이 좋을 것이다.
튜플 자료형에 대한 내용은 다음에 정리하도록 하겠다.
다음과 같이 err_code를 파라미터로 던지면 해당하는 튜플 값을 리턴하는 함수를 만들자.
def return_err_tuple(err_code):
err_dic = {0:('OP_ERR_NONE', '정상처리'),
-10:('OP_ERR_FAIL', '실패'),
-100:('OP_ERR_LOGIN', '사용자정보교환실패'),
-101:('OP_ERR_CONNECT', '서버접속실패'),
-102:('OP_ERR_VERSION', '버전처리실패'),
-103:('OP_ERR_FIREWALL', '개인방화벽실패'),
-104:('OP_ERR_MEMORY', '메모리보호실패'),
-105:('OP_ERR_INPUT', '함수입력값오류'),
-106:('OP_ERR_SOCKET_CLOSED', '통신연결종료'),
-200:('OP_ERR_SISE_OVERFLOW', '시세조회과부하'),
-201:('OP_ERR_RQ_STRUCT_FAIL', '전문작성초기화실패'),
-202:('OP_ERR_RQ_STRING_FAIL', '전문작성입력값오류'),
-203:('OP_ERR_NO_DATA', '데이터없음'),
-204:('OP_ERR_OVER_MAX_DATA', '조회가능한종목수초과'),
-205:('OP_ERR_DATA_RCV_FAIL', '데이터수신실패'),
-206:('OP_ERR_OVER_MAX_FID', '조회가능한FID수초과'),
-207:('OP_ERR_REAL_CANCEL', '실시간해제오류'),
-300:('OP_ERR_ORD_WRONG_INPUT', '입력값오류'),
-301:('OP_ERR_ORD_WRONG_ACCTNO', '계좌비밀번호없음'),
-302:('OP_ERR_OTHER_ACC_USE', '타인계좌사용오류'),
-303:('OP_ERR_MIS_2BILL_EXC', '주문가격이20억원을초과'),
-304:('OP_ERR_MIS_5BILL_EXC', '주문가격이50억원을초과'),
-305:('OP_ERR_MIS_1PER_EXC', '주문수량이총발행주수의1 % 초과오류'),
-306:('OP_ERR_MIS_3PER_EXC', '주문수량은총발행주수의3 % 초과오류'),
-307:('OP_ERR_SEND_FAIL', '주문전송실패'),
-308:('OP_ERR_ORD_OVERFLOW', '주문전송과부하'),
-309:('OP_ERR_MIS_300CNT_EXC', '주문수량300계약초과'),
-310:('OP_ERR_MIS_500CNT_EXC', '주문수량500계약초과'),
-340:('OP_ERR_ORD_WRONG_ACCTINFO', '계좌정보없음'),
-500:('OP_ERR_ORD_SYMCODE_EMPTY', '종목코드없음')
}
tuple = err_dic[err_code]
return tuple
호출하는 쪽에서는 다음과 같이 사용할 수 있을 것이다.
def comm_connect(self):
self.dynamicCall("CommConnect()")
self.login_event_loop = QEventLoop()
self.login_event_loop.exec_()
def _connect_slot(self, err_code):
print(return_err_tuple(err_code)[1]) #정상처리
self.login_event_loop.exit()
키움 서버 접속 이벤트가 발생하면 _connect_slot 함수를 호출할 것이고 정상접속되면 err_code에 0 코드를 받아와서 0에 해당하는 튜플 값을 리턴할 것이다. 여기서는 1값을 호출했으므로 '정상처리'라고 log창에 표시될 것이다.
728x90
반응형
'금융공학 > 키움API 연동' 카테고리의 다른 글
"타인계좌는 사용할 수 없습니다" 해결방법 (0) | 2020.11.14 |
---|---|
[Python] 아나콘다 32비트 가상환경 설정 후 파이썬 비트 확인 방법 (0) | 2020.11.11 |
[Python] PyQt5 install 해도 QAxContainer import가 안 되는 이유 (5) | 2020.03.28 |
[Python] 64비트 아나콘다 설치 후 32비트 가상환경 추가 방법 (0) | 2020.02.27 |