Python rất tốt trong việc xử lý các lệnh gọi API. Trong bài viết này, chúng ta sẽ xem cách chúng ta có thể xử lý các lệnh gọi API cho tỷ giá hối đoái tiền tệ trong thời gian thực cũng như trong lịch sử.
Sử dụng forex-python
Mô-đun này cung cấp cách trực tiếp nhất để nhận tỷ giá quy đổi tiền tệ. Nó có các chức năng và tham số có thể nhận đầu vào cho các mã tiền tệ cần thiết và sau đó đưa ra kết quả cho việc chuyển đổi. Ví dụ dưới đây cung cấp tỷ lệ chuyển đổi trực tiếp.
Ví dụ
from forex_python.converter import CurrencyRates c = CurrencyRates() print(c.get_rate('USD', 'GBP'))
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
0.7357387755
Tỷ giá tiền tệ trước đây
Chúng tôi thêm một đối tượng datetime tạo thành mô-đun datetime vào ví dụ trên và điều đó cung cấp cho chúng tôi tỷ giá hối đoái tiền tệ tại thời điểm và ngày cụ thể.
Ví dụ
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))
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
75.4937596793
Sử dụng API web
Có nhiều API cung cấp cho chúng tôi tỷ giá tiền tệ bằng cách thực hiện các cuộc gọi bằng khóa API và nhận lại kết quả dưới dạng JSON. Chúng tôi có thể mở rộng thêm mã để chuyển đổi JSON thành một danh sách và định dạng dữ liệu nếu cần.
Ví dụ
import requests # Where USD is the base currency you want to use url = 'https://v6.exchangerate-api.com/v6/336ccxxxxxxxxx8e74eac/latest/USD' # Making our request response = requests.get(url) data = response.json() # Your JSON object print(data)
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
{'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}}