In this code snippet, we’ll show an example of a Python language function to get currency exchange rates for a given currency using exchangerate-api.com.
Python language functions to get currency exchange rates for a given currency using RapidAPI
import requests API_KEY = "your_rapidapi_key_here" def get_current_prices(API_KEY: str, from_currency: str) -> dict: """ Retrieves the current exchange rates for a given currency. :param API_KEY: The API key for accessing the exchange rate API. Must be a string. :param from_currency: The currency for which to retrieve exchange rates. Must be a string. :return: A dictionary containing the current exchange rates for the specified currency. """ url = f"https://exchangerate-api.p.rapidapi.com/rapid/latest/{from_currency}" headers = { "X-RapidAPI-Key": API_KEY, "X-RapidAPI-Host": "exchangerate-api.p.rapidapi.com" } response = requests.get(url, headers=headers) data = response.json() return data["rates"] def get_all_currencies(API_KEY: str) -> list: """ Retrieves a list of all available currencies using the specified API key. Args: API_KEY (str): The API key used to authenticate the request. Returns: list: A sorted list of currency codes. """ url = f"https://exchangerate-api.p.rapidapi.com/rapid/latest/USD" headers = { "X-RapidAPI-Key": API_KEY, "X-RapidAPI-Host": "exchangerate-api.p.rapidapi.com" } response = requests.get(url, headers=headers) data = response.json() return sorted(list(data["rates"].keys())) def determinate_current_exchange_price(currencies: dict, from_currency: str, to_currency: str, amount: float): """ Calculates and prints the exchange rate for a given amount between two currencies. Parameters: currencies (dict): A dictionary containing the exchange rates for different currencies. from_currency (str): The currency that the amount is in. to_currency (str): The currency that the amount will be converted to. amount (float): The amount of money to be converted. Returns: None """ _to = currencies[to_currency] formatter_to = "{:,.2f}".format(_to) value = round(amount * _to, 2) formatted_number = "{:,.2f}".format(value) print(f"\n\n{amount} {from_currency} to {to_currency} = {formatted_number}\nAt a rate of 1 {from_currency} = {formatter_to} {to_currency}") def currency_input(currencies: list, input_type: str) -> str: """ Generates a currency input based on the given list of currencies and input type. Args: currencies (list): A list of currencies. input_type (str): The type of input. Possible values are "from" or any other string. Returns: str: The user input in uppercase, after validating against the list of currencies. """ if input_type == "from": user_input = input("\nEnter your current currency: ") else: user_input = input("\nEnter the target currency for conversion: ") while user_input.upper() not in currencies: user_input = input( f"\n\nThis is not a valid option !!!\nTry again using one of the following options:\n[ {', '.join(currencies)} ] : ") return user_input.upper() def currency_amount() -> float: """ Function to prompt the user to enter an amount and validate that it is greater than 0. Parameters: None Returns: float: The amount entered by the user. """ amount = float(input("\nEnter the amount you wish to convert: ")) while amount <= 0.0: amount = float(input( "\n\nThe amount must be greater than 0 !!!\nEnter the amount you wish to convert: ")) return amount def main(): currencies_list = get_all_currencies(API_KEY) print("*******************************************************************************************") print("*************************************** WELCOME *******************************************") print("*******************************************************************************************") print( f"Here are the {len(currencies_list)} current currencies list:\n{', '.join(currencies_list)}") from_currency = currency_input(currencies_list, "from") to_currency = currency_input(currencies_list, "to") while from_currency == to_currency: print("\n\n*******************************************") print("The two currencies must be different.") print("*******************************************") to_currency = currency_input(currencies_list, "to") amount = currency_amount() current_prices = get_current_prices(API_KEY, from_currency) determinate_current_exchange_price( current_prices, from_currency, to_currency, amount) if __name__ == "__main__": main()
All code from this code snippet package can be downloaded here.
MIT Licensed Code – See License
Tags: python, python currencies, exchange rate, currency, currency exchange, api, get_all_currencies, currency api, currency exchange api