상세 컨텐츠

본문 제목

python-다트api활용

Python

by finite라이프 2023. 1. 14. 21:14

본문

평소에 가끔씩 다트전자공시를 보는데 OpenDart라는 다트에서 제공하는 api서비스를

활용해 뭔가를 해볼 수 있지 않을까 생각했다.

opendart에 들어가서 인증키를 받고 개발가이드-상장기업 재무정보-다중회사 주요계정을 들어갔다.

며칠전 웹공부를 해서 눈에 익는 메서드 GET이 있다.

API를 활용하는것에 익숙치 않아서 구글링으로 이것저것 찾아봤다.

import requests
import json
import dart_fss as dart
api_key = "22bdee0a83989a1d67be8aef7fbd914deb34129a"

res = requests.get("https://opendart.fss.or.kr/api/fnlttMultiAcnt.json",
                   params={"crtfc_key": api_key,"corp_code":"00126380" ,"bsns_year":"2022","reprt_code": "11014"})
#다중회사 주요계정 개발가이드 요청 URL과 params에는 crtfc_key(API인증키),corp_code(회사고유번호),bsns_year(사업연도),reprt_code(보고서코드.몇분기인지) 등의 정보가 들어있다.

f = res.json() #f는 바로 dic타입이 된다.
# dic = json.loads(f)
lis = f['list'] #[객체] . 배열안에 객체가 하나 있는 형태. f['list'][0]은 객체가 된다.

#print(lis) # type: list

#print(lis[0]) # type:#dictionary  #여기에 기업정보(유동자산,종목코드 등..)이 한꺼번에 들어있다. 가공필요

what = lis[0]
#print(lis[0]['rcept_no']) #f['list'][0]객체안에 'rcept_no'키값을 넣어서 20221114001832라는 밸류를 얻었다.


for idx,i in enumerate(lis):
   print(f"<{idx}번째 인덱스> ",i['account_nm']," ",i["fs_nm"]," ",i["sj_nm"]," ",i['thstrm_nm']," ",i["thstrm_dt"]," ",i["thstrm_amount"])
    #                            계정명                개별/연결       재무상태,손익계산         당기명(제13기3분기말)     당기일자(2018.0930)    당기금액 100

requests라이브러리는 http통신을 위한 외부라이브러리이다. get,push등의 메서드로 서버와 통신한다.

json라이브러리는 파이썬에서 json형태의 데이터를 처리하기 위한 라이브러리다. https://www.daleseo.com/python-json/

dart_fss는 다운받아놓고 안썼다. api를 사용하려면 이 라이브러리를 써야하는 것인 줄 알았는데 아니었다.

https통신을 통해 받은 json은 f로 전해진다. 이때 f는 딕셔너리타입이 바로 된다.

f의 키값중에서 "list"라는 키가 있었는데 이것의 밸류가  배열이고 그 배열안의 값들은 또 dic형태로 되어있다.

이런식이다.

'list'의 밸류인 배열.그리고 그 배열의 각 요소들은 각각 딕셔너리 형태인데

for i in lis: print(i) 를 통해서 그 안이 어떻게 구성되었는지 알 수 있다.

for i in lis: print(i)의 예시

lis[0]과 lis[1] , lis[2] ,,,은 크게 각각 다른 계정의 내용이 들어있는 것으로 구별되었다. lis[0]['account_nm']과 lis[1]['account_nm']을 확인해봄으로서 알 수 있다.

이런식으로 나온다.

오늘은 다중회사 주요계정API를 이용해봤는데 말그대로 주요계정만 따올수 있어서 다음에는 단일회사 전체 재무재표API를 이용해봐야겠다.

 

'Python' 카테고리의 다른 글

python- BytesIO와zipFile  (0) 2023.01.18
python-pandas library  (0) 2023.01.16
파이참 주석에서 노란줄 지우기  (0) 2023.01.14
python json  (0) 2023.01.14
requests 라이브러리  (0) 2023.01.14

관련글 더보기

댓글 영역