Python은 API 호출을 처리하는 데 매우 뛰어난 언어입니다. 이 글에서는 Python을 활용해 실시간 환율뿐만 아니라 특정 시점의 과거 환율까지 손쉽게 조회하는 방법을 소개합니다.
forex-python 라이브러리 사용하기
forex-python 모듈은 환율 변환 정보를 가장 간단하고 직관적으로 가져올 수 있는 방법을 제공합니다. 통화 코드를 입력값으로 전달하면 해당 통화 간의 환율 변환 결과를 바로 받아볼 수 있습니다. 아래 예제는 현재 시점의 실시간 환율을 조회하는 코드입니다.
예제 코드
from forex_python.converter import CurrencyRates
c = CurrencyRates()
print(c.get_rate('USD', 'GBP'))실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
0.7357387755
즉, 1달러(USD)가 약 0.7357파운드(GBP)에 해당한다는 의미입니다. 이처럼 단 몇 줄의 코드로 최신 환율을 즉시 확인할 수 있습니다.
과거 환율 데이터 조회하기
datetime 모듈의 datetime 객체를 위 예제에 추가하면, 특정 날짜와 시간의 환율 데이터도 조회할 수 있습니다. 과거 시점의 환율 분석이나 백테스팅 작업에 유용하게 활용됩니다.
예제 코드
from forex_python.converter import CurrencyRates
import datetime
c = CurrencyRates()
dt = datetime.datetime(2020, 3, 27, 11, 21, 13, 114505)
print(c.get_rate('USD', 'INR', dt))실행 결과
위 코드를 실행하면 지정한 시점(2020년 3월 27일)의 달러-루피 환율이 출력됩니다.
75.4937596793
웹 API 활용하기
API 키를 사용해 호출하면 JSON 형태로 환율 데이터를 반환해 주는 다양한 외부 API도 존재합니다. 대표적인 서비스인 exchangerate-api를 활용하면 기준 통화(USD 등)에 대한 전 세계 통화의 환율을 한 번에 받아올 수 있습니다. 필요에 따라 JSON 데이터를 리스트로 변환하거나 원하는 형식으로 가공하여 사용할 수도 있습니다.
예제 코드
import requests # USD를 기준 통화(base currency)로 설정 url = 'https://v6.exchangerate-api.com/v6/336ccxxxxxxxxx8e74eac/latest/USD' # API 요청 보내기 response = requests.get(url) data = response.json() # JSON 객체 출력 print(data)
실행 결과
위 코드를 실행하면 다음과 같이 기준 통화와 각국 통화별 환율이 담긴 JSON 객체가 반환됩니다.
{'result': 'success', 'documentation': 'https://www.exchangerate-api.com/docs', 'terms_of_use': 'https://www.exchangerate-api.com/terms', 'time_last_update_unix': 1610323201, 'time_last_update_utc': 'Mon, 11 Jan 2021 00:00:01 +0000', 'time_next_update_unix': 1610409616, 'time_next_update_utc': 'Tue, 12 Jan 2021 00:00:16 +0000', 'base_code': 'USD', 'conversion_rates': {'USD': 1, 'AED': 3.6725, ………., 'XOF': 536.3826, 'XPF': 97.579, 'YER': 250.1264, 'ZAR': 15.2899, 'ZMW': 21.1561}}마무리
지금까지 Python으로 실시간 환율과 과거 환율을 조회하는 두 가지 방법을 살펴보았습니다. 간단한 조회에는 forex-python 라이브러리가 적합하고, 더 많은 통화와 세부 정보가 필요하다면 웹 API를 활용하는 것이 좋습니다. 두 방법을 상황에 맞게 조합하면 환율 기반의 다양한 애플리케이션을 손쉽게 개발할 수 있습니다.