평소에 가끔씩 다트전자공시를 보는데 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) 를 통해서 그 안이 어떻게 구성되었는지 알 수 있다.
lis[0]과 lis[1] , lis[2] ,,,은 크게 각각 다른 계정의 내용이 들어있는 것으로 구별되었다. lis[0]['account_nm']과 lis[1]['account_nm']을 확인해봄으로서 알 수 있다.
오늘은 다중회사 주요계정API를 이용해봤는데 말그대로 주요계정만 따올수 있어서 다음에는 단일회사 전체 재무재표API를 이용해봐야겠다.
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 |
댓글 영역