프로그래밍 언어/Python

금융감독원 API로 데이터 수집하기

· 코딩마이데이

금융감독원 API를 사용해서 정기계금 금리 데이터를 수집해 봅시다. datakart 패키지를 사용하면 쉽게 처리할 수 있습니다. dakart 패키지의 Fss 클래스는 금융감독원이 오픈 API를 사용해 정기 예금 금리 데이터를 수집하는 함수 deposit_search()를 제공합니다. 함수의 반환값은 금융권역별, 상품별 정기예금의 금리 데이터를 포함한 리스트입니다.

resp = fss.deposit_search(fin_grp="은행", intr_rate_type="단리",
                                           save_trm="12", join_member="제한없음")

 

함수 deposit_search()의 각 매개변수의 의미는 다음과 같습니다.

매개변수 의미 선택 가능한 옵션
fn_grp 금융관리 "은행", "여신전문금융", "저축은행", "보험", "금융투자"
intr_rate_type 이자계산방식 "단리", "복리"
save_trm 저축기간(월 단위) "1", "3", "6", "12", "24", "30"
join_member 가입대상 "제한없음", "서민적용", "일부제한"

 

비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_1_2.py'로 변경합니다. 다음과 같이 코드를 입력하고 대화형 창에서 실행하면 'output' 폴더에 총 37건의 정기예금 금리 데이터가 저장된 'step_1_2.xlsx' 파일이 생성됩니다.

 

ch_10/step_1_2.py

from pathlib import Path
import pandas as pd
from datakart import Fss
from step_1_1 import OUT_DIR #  03

OUT_1_2 = OUT_DIR / f"{Path(__file__).stem}.xlsx"

def deposit_into_to_xlsx():
    FSS_KEY = "318250bfac72b6c7d8a388aac20deea2" # 금융감독원 API 인증키 입력
    fss = Fss(FSS_KEY) # 10
    resp = fss.deposit_search(fin_grp="은행", intr_rate_type="단리", # 11
                              save_trm="12", join_member="제한없음") # 12
    df_raw = pd.DataFrame(resp)
    df_raw.to_excel(OUT_1_2, index=False)

if __name__ == "__main__":
    deposit_into_to_xlsx()

 

03 datakart 패키지의 Fss 클래스를 불러옵니다.

10 금융감독원 오픈 API 인증키를 이용해서 Fss 객체를 생성합니다.

11~12 함수 deposit_search()를 사용해서 정기계음 관리 데이터를 수집하고 변수 resp에 저장합니다.

 

실행 결과로 출력된 데이터는 15열로 이루어져있습니다. 이 중 주목해야 할 정보는 A열의 금융 기관(kor_co_nm), B열의 상품명(fin_prdt_nm), L열의 이자 계산 방식(intr_rate_type_nm), M열의 만기 개월수(save_trm), N열의 세전 금리(intr_rate), O열의 최고 우대 금리(intr_rate2)입니다.