josw123 / dart-fss

한국 금융감독원에서 운영하는 다트(Dart) 시스템 크롤링을 위한 라이브러리
https://github.com/josw123/dart-fss
MIT License
327 stars 111 forks source link

일부 기업 재무상태표 가져오기 오류 #12

Closed paladinz67 closed 5 years ago

paladinz67 commented 5 years ago

안녕하세요, 빠른 대응에 항상 감사드립니다.

재무상태표 추출 시 아래와 같은 오류가 발생합니다. 기업 별로 보고서 양식이 일정하지 않으니 case별로 문제가 발생하는 것 같습니다. 감사합니다.

Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on win32 import dart_fss as dart api_key = '0e3b458c6a7d24ccbcc9056ecb9b5a1e66b5d320' # dart 인증키 dart.dart_set_api_key ( api_key = api_key ) # dart 인증 crp_list = dart.get_crp_list () # 전체 기업 리스트 (class) crp_name = '디에이피' crp_name_index = crp_list.find_by_name (crp_name) [0] # 지정 기업 index fs = crp_name_index.get_financial_statement(start_dt='20000101') Download: 18.0KB [00:00, 213KB/s] Download: 18.0KB [00:00, 212KB/s] Download: 14.0KB [00:00, 260KB/s] Download: 14.0KB [00:00, 292KB/s] Download: 15.0KB [00:00, 251KB/s] Download: 15.0KB [00:00, 284KB/s] Download: 15.0KB [00:00, 279KB/s] Download: 15.0KB [00:00, 301KB/s] Download: 14.0KB [00:00, 281KB/s] Extracting fs-annual: 27%|██▋ | 4/15 [00:21<00:58, 5.36s/page]Traceback (most recent call last): File "D:\Proj\Analytics\Extracting_from_DART\dart_fss\venv\lib\site-packages\IPython\core\interactiveshell.py", line 3325, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "", line 1, in fs = crp_name_index.get_financial_statement(start_dt='20000101') File "D:\Proj\Analytics\Extracting_from_DART\dart_fss\venv\lib\site-packages\dart_fss\crp.py", line 188, in get_financial_statement separator=separator) File "D:\Proj\Analytics\Extracting_from_DART\dart_fss\venv\lib\site-packages\dart_fss\fs.py", line 577, in search_financial_statement statements = append_fs(statements, reports, fs_tp=fs_tp, separate=separate, lang=lang) File "D:\Proj\Analytics\Extracting_from_DART\dart_fss\venv\lib\site-packages\dart_fss\fs.py", line 435, in append_fs overlap = set(fs.columns[1:]).intersection(set(financial_statements.columns)) AttributeError: 'NoneType' object has no attribute 'columns'

josw123 commented 5 years ago

디에이피의 경우 연결 재무제표가 없는 회사 입니다.(해당사항이 없습니다.) 이로인해 발생하는 오류이므로

crp_name = '디에이피'
crp_name_index = crp_list.find_by_name (crp_name) [0] # 지정 기업 index
fs = crp_name_index.get_financial_statement(start_dt='20000101', separate=True)

로 검색하셔야 될 것 같습니다.

추가적으로 '동남합성', '모두투어리츠'등 연결 재무제표가 없는 회사들의 경우 일반적으로 발생하는 오류이므로 나중에 '해상사항없음'을 표시하도록 수정하겠습니다.

paladinz67 commented 5 years ago

감사합니다.

josw123 commented 5 years ago

연결재무제표가 없는 경우 NotFoundConsolidated 오류를 발생시키도록 수정하였습니다. NotFoundConsolidated 오류 처리 코드를 삽입하셔서 사용하시면 됩니다.

paladinz67 commented 5 years ago

감사합니다.