top of page
Foto do escritorAmanda Nascimento

Obter cotação R$ x moeda via API

Para obter a conversão do real para uma moeda escolhida utilizando Python:




import requests
from datetime import datetime

# Função para obter as cotações atuais
def obter_cotacoes():
    try:
        # URL da API para cotação
        url = "https://api.exchangerate-api.com/v4/latest/BRL"
        resposta = requests.get(url)
        dados = resposta.json()

        # Retorna as cotações e a data da atualização
        return dados['rates'], dados['date']
    except Exception as e:
        print("Erro ao obter as cotações:", e)
        return None, None

# Lista de moedas disponíveis
moedas_disponiveis = {
    "USD": "Moeda Americana",        
    "EUR": "Moeda Europeia",         
    "GBP": "Moeda Britânica",        
    "ARS": "Moeda Argentina",        
    "JPY": "Moeda Japonesa",         
    "CAD": "Moeda Canadense",        
    "AUD": "Moeda Australiana",     
    "CNY": "Moeda Chinesa",          
    "RUB": "Moeda Russa",            
    "INR": "Moeda Indiana",          
    "KRW": "Moeda Sul-Coreana",      
    "PYG": "Moeda Paraguaia",        
    "COP": "Moeda Colombiana"        
}

# Obter a lista de cotações
cotas, data_extracao = obter_cotacoes()

if cotas:
    while True:
        print("\nMoedas disponíveis para conversão:\n")
        opcoes = list(moedas_disponiveis.items())
        for idx, (codigo, nome) in enumerate(opcoes, start=1):
            print(f"{idx} - {nome} ({codigo})")

        # Escolha da moeda
        escolha = input("\nDigite o número correspondente à moeda desejada: ")
        if escolha.isdigit() and 1 <= int(escolha) <= len(opcoes):
            moeda = opcoes[int(escolha) - 1][0]

            # Entrada do valor em reais
            try:
                reais = float(input("\nQuantos reais você deseja converter? "))
            except ValueError:
                print("Por favor, insira um valor numérico válido.")
                continue

            # Cotação escolhida
            cotacao_escolhida = cotas[moeda]
            cotacao_inversa = 1 / cotacao_escolhida  # Cotação do Real em relação à moeda
            valor_convertido = reais * cotacao_escolhida  # Multiplica o valor em reais pela cotação

            data_formatada = datetime.strptime(data_extracao, "%Y-%m-%d").strftime("%d/%m/%Y")

            print(f"\nData da cotação: {data_formatada}")
            print(f"A cotação do {moedas_disponiveis[moeda]} ({moeda}) no momento está: R$ {cotacao_inversa:.2f} por 1 {moeda}")
            print(f"O valor de R$ {reais:.2f} convertido para {moedas_disponiveis[moeda]} será de {valor_convertido:.2f} {moeda}.")
        else:
            print("\nOpção inválida. Tente novamente.")

        continuar = input("\nDeseja realizar outra conversão? (s/n): ").strip().lower()
        if continuar != 's':
            print("Programa encerrado :) ")
            break
else:
    print("\nNão foi possível obter as cotações. Tente novamente mais tarde.")


bottom of page