Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python รับอัตราแลกเปลี่ยนสกุลเงินตามเวลาจริงหรือไม่


Python เก่งมากในการจัดการการเรียก API ในบทความนี้ เราจะมาดูกันว่าเราจะจัดการกับการเรียก API สำหรับอัตราแลกเปลี่ยนสกุลเงินแบบเรียลไทม์ได้อย่างไรเช่นเดียวกับในอดีต

การใช้ forex-python

โมดูลนี้เป็นวิธีที่ตรงที่สุดในการรับอัตราการแปลงสกุลเงิน มีฟังก์ชันและพารามิเตอร์ที่สามารถป้อนข้อมูลสำหรับรหัสสกุลเงินที่ต้องการและให้ผลลัพธ์สำหรับการแปลง ตัวอย่างด้านล่างแสดงอัตราการแปลงสด

ตัวอย่าง

from forex_python.converter import CurrencyRates

c = CurrencyRates()

print(c.get_rate('USD', 'GBP'))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

0.7357387755

อัตราสกุลเงินในอดีต

เราเพิ่มอ็อบเจ็กต์ 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))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

75.4937596793

การใช้เว็บ API

มี API มากมายที่ให้อัตราสกุลเงินแก่เราโดยการโทรโดยใช้คีย์ API และรับผลลัพธ์กลับเป็น JSON เราสามารถขยายโค้ดเพิ่มเติมเพื่อแปลง JSON เป็นรายการและจัดรูปแบบข้อมูลได้หากต้องการ

ตัวอย่าง

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)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

{'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}}