Skip to content
Advertisement

Conversion app to display the date and result

I have created a currency conversion app as users need to input the currency from, to and the amount required.

import requests
from tkinter import *

root = Tk()
root.title('Currency Converter')
root.geometry("500x460")

def currency_convertion():
    url = "https://api.apilayer.com/exchangerates_data/convert?to=" + to_currency_entry.get() + "&from=" + from_currency_entry.get() + "&amount=" + amount_entry.get()

    payload = {}
    headers= {
    "apikey": ""
    }

    response = requests.request("GET", url, headers=headers, data = payload)

    status_code = response.status_code
    result = response.text
    print(result)
    result_label = Label(root, text=result)
    result_label.grid(row=0, column= 1, columnspan=2)
    

from_currency_label = Label(root, text='From Currency')
from_currency_label.grid(row=1, column=0, pady=10)

to_currency_label = Label(root, text='To Currency')
to_currency_label.grid(row=2, column=0, pady=10)
 
amount_label = Label(root, text='Amount')
amount_label.grid(row=3, column=0, pady=10)

from_currency_entry = Entry(root,)
from_currency_entry.grid(row=1, column=1, stick=W+E+N+S, pady=10)

to_currency_entry = Entry(root,)
to_currency_entry.grid(row=2, column=1, stick=W+E+N+S,pady=10)
 
amount_entry = Entry(root,)
amount_entry.grid(row=3, column=1, stick=W+E+N+S, pady=10)

button = Button(root, text="Convert", command=currency_convertion)
button.grid(row=4, column=1, stick=W+E+N+S)

root.mainloop()

I have successfully retrieved the data from the API, when I click the button the result label was shown all the data below rather than the date and result of the currency’s conversion. How could I display the date and result in my result label?

The retrieved data from the API:

{
    "success": true,
    "query": {
        "from": "JPY",
        "to": "USD",
        "amount": 30000
    },
    "info": {
        "timestamp": 1658636823,
        "rate": 0.007343
    },
    "date": "2022-07-24",
    "result": 220.29
}

Advertisement

Answer

Use result = response.json() to get the JSON data from the response as a python dictionary. You can then use this dictionary to get the data you want.

result = response.json()
result_str = "Date: " + result["date"] + " Result: " + str(result["result"])
result_label = Label(root, text=result_str)
User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement