from util._pykis.Load_Pykis import KIS
stock = KIS.stock('002170').quote()
에러 내용
Exception has occurred: KeyError
"KisDomesticQuote.sector_name 필드의 bstp_kor_isnm값이 존재하지 않습니다. (KisString(field='bstp_kor_isnm', scope=None, absolute=False))"
File "C:\Git\Pykis_Data\app\temp.py", line 3, in <module>
stock = KIS.stock('002170').quote()
^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyError: "KisDomesticQuote.sector_name 필드의 bstp_kor_isnm값이 존재하지 않습니다. (KisString(field='bstp_kor_isnm', scope=None, absolute=False))"
에러 원인 추측
python-kis 라이브러리 app/stock/quote.py 의 domestic_quote 함수에서 한국투자 open api 의
국내주식시세 -> 주식현재가 시세[v1_국내주식-008] API 를 사용하고 있습니다.
API doc 에서는 업종 한글명인 bstp_kor_isnm 값을 제공한다고 하지만,
직접 002170 주식 코드로 fetch 해본 결과 bstp_kor_isnm 키 자체가 존재하지 않습니다.
kospi 주식 815 개로 테스트 해본 결과 다음 코드의 주식들이 같은 현상이 나타나고, quote 실행시 같은 오류가 발생합니다.
Version: PyKis/2.0.3
Python: CPython 3.12.5
System: Windows 10.0.19045 [AMD64]
Installed Packages:
========== requests ===========
Required: 2.32.3>=
Installed: Not Found
====== websocket-client =======
Required: 1.8.0>=
Installed: Not Found
======== cryptography =========
Required: 43.0.0>=
Installed: Not Found
========== colorlog ===========
Required: 6.8.2>=
Installed: Not Found
재현 방법
from pykis import PyKis
#pykis 객체
KIS = PyKis(
id=SITE_ID,
account=ACC_NO_REAL,
appkey=APP_KEY_REAL,
secretkey=APP_SEC_REAL,
keep_token=True
)
stock = KIS.stock('002170').quote()
추가 정보
에러가 발생하는 종목들은 공통점이 있습니다.
코스피 주식 종목 엑셀 파일로 만들기를 이용해 엑셀 파일에서 확인해 본 결과 에러가 발생하는 18개의 종목들은 지수업종대분류, 지수업종중분류, 지수업종소분류 값이 0으로 업종 한글명을 알아낼수 없고, api 에서는 bstp_kor_isnm 값을 none 으로라도 제공해야하지만, 아예 key 자체를 제공하지 않는 것으로 보입니다
/pykis/api/stock/quote.py 404 줄을 bstp_kor_isnm 키가 없으면 상품유형타입을 빈문자열로 반환하도록 임시로 변경하니 에러는 발생하지 않았습니다.
#sector_name: str = KisString["bstp_kor_isnm"] # 이전 코드
sector_name: str = KisString["bstp_kor_isnm",""] # 변경된 코드
빠른 문제 해결을 위해 다음을 확인했나요?
버그 설명
에러가 발생하는 코드
에러 내용
에러 원인 추측
python-kis 라이브러리 app/stock/quote.py 의 domestic_quote 함수에서 한국투자 open api 의 국내주식시세 -> 주식현재가 시세[v1_국내주식-008] API 를 사용하고 있습니다. API doc 에서는 업종 한글명인 bstp_kor_isnm 값을 제공한다고 하지만, 직접 002170 주식 코드로 fetch 해본 결과 bstp_kor_isnm 키 자체가 존재하지 않습니다. kospi 주식 815 개로 테스트 해본 결과 다음 코드의 주식들이 같은 현상이 나타나고, quote 실행시 같은 오류가 발생합니다.
종속성 버전 문제 진단
Version: PyKis/2.0.3 Python: CPython 3.12.5 System: Windows 10.0.19045 [AMD64]
Installed Packages: ========== requests =========== Required: 2.32.3>= Installed: Not Found ====== websocket-client ======= Required: 1.8.0>= Installed: Not Found ======== cryptography ========= Required: 43.0.0>= Installed: Not Found ========== colorlog =========== Required: 6.8.2>= Installed: Not Found
재현 방법
추가 정보
에러가 발생하는 종목들은 공통점이 있습니다. 코스피 주식 종목 엑셀 파일로 만들기를 이용해 엑셀 파일에서 확인해 본 결과 에러가 발생하는 18개의 종목들은 지수업종대분류, 지수업종중분류, 지수업종소분류 값이 0으로 업종 한글명을 알아낼수 없고, api 에서는 bstp_kor_isnm 값을 none 으로라도 제공해야하지만, 아예 key 자체를 제공하지 않는 것으로 보입니다
/pykis/api/stock/quote.py 404 줄을 bstp_kor_isnm 키가 없으면 상품유형타입을 빈문자열로 반환하도록 임시로 변경하니 에러는 발생하지 않았습니다.
PR를 통해 라이브러리에 기여하고 싶으신가요?