2.0.0 ECOS API 호출하기

ofohj·2023년 1월 30일
0
post-thumbnail

ECOS는 한국은행 경제통계시스템의 약자이다. 오늘은 여기서 데이터를 불러오기 위해 ECOS API를 호출하겠다!

1. 사이트 들어가기

1) 회원가입
https://ecos.bok.or.kr/#/ 에서 회원가입을 진행한다.

2) open api를 클릭

3) open api/인증키 신청

2. API 호출

api를 주피터 노트북 환경에서 호출해보겠다. 하지만 난 어떤 코드를 써서 호출해야하는지 모르기 때문에!

우리의 똑똑이 chatgpt에게 api를 요청하는 파이썬 코드를 물어보았다.

🔻파이썬 코드

🔻부연 설명

이 코드는 GET request를 사용해 만든 코드라고 나와있다. 첫 문장부터 어렵다. get request가 머냐~

get request는 데이터를 서버로부터 받기 위한 메서드라고 한다.
데이터 조회를 위한 메서드!

암튼 코드는 아래와 같다.

import requests

# API endpoint
url = "https://api.example.com/data"

# Make a GET request to the API
response = requests.get(url)

# Check the status code of the response
if response.status_code == 200:
    # If the request was successful, print the data
    print(response.json())
else:
    # If the request was unsuccessful, print an error message
    print(f"Request failed with status code {response.status_code}")

코드를 입력하면 request에 오류가 난다.
터미널에서 pip install requests로 설치해주면 된다.

3. URL 확인

코드의 url 부분을 원하는 주소로 바꿔주어야 한다.
한국은행 경제통계시스템의 주소는
개발가이드 - 서비스 통계목록 - 개발명세서 다운로드 순으로 들어가면 찾을 수 있다!

🔻실행결과

🖐️여기서 잠깐~
길게 나열되있는 url을 의미에 따라 변수로 만들어 입력해주도록 하겠다! 그러면 추후 수정이 더 수월하기 때문이다.
(각 의미는 홈페이지 서비스 통계목록에 설명된 요청인자를 참고하였다.)

url을 출력해달라는 요청에 맞게 실행되었다.

4. 실행

# GET request로 url을 받는 response 변수 생성
response = requests.get(url)

# response의 status_code가 일치하면
if response.status_code == 200:
    # response를 json형식으로 출력해줘
    print(response.json())
else:
    # 그게 아니라면 오류메시지 출력!
    print(f"Request failed with status code {response.status_code}")

🔻실행결과

5. (선택) 데이터 정렬

하지만 위에서 출력된 데이터는 가독성이 떨어진다.

아래 코드와 같이 dumps를 사용하면 조금 더 정리된 형태로 출력된다.
(❗json에서 오류가 생긴다면 import json을 상단에 입력해 해결할 수 있다. )

clean_data = json.dumps(data, indent = 4)
print(clean_data)

🔻실행결과

깔끔해지긴 했는데 뭔~가 이상하다. 한글이 아니라 유니코드값으로 출력되어 그런것이라고 한다.

clean_data = json.dumps(data, indent = 4, ensure_ascii=False)

위의 코드에 ensure_ascii=False 를 더 입력하여 해결할 수 있다.

🔻실행결과

open api 호출하기 완료!

00. 뽀낫스

확실한. 이해를. 위해. 다른 실습을 추라이 해보자

??: 나는 2023.01.01 ~ 2023.12.31 사이 우리나라 일별 시장금리가 궁금하다.

👉통계검색 - 통화/금융 - 1.3. 금리 - 1.3.2. 시장금리 - 1.3.2.1. 시장금리(일별)
에 들어가면 궁금한 정보에 대한 코드(table_code)가 뜬다.

이를 참고해 오늘 실습한 코드를 아래와 같이 수정한다.
table_code가 달라졌고, time_period(표시기간)이 년(A)에서 일(D)단위로 바뀌었다. 또한, search_from(시작날짜)와 search_to(종료날짜)를 수정해주고, 위 사진의 통계목록에서 알고싶은 것을 선택해 item_code를 수정한다.

🔻실행결과

ㄲ~

0개의 댓글