from tkinter import * from tkinter import messagebox, ttk import requests import json import pandas currency_list_response = requests.get("https://api.frankfurter.dev/v1/currencies") currency_list = json.loads(currency_list_response.text) print(currency_list) stuff_list = ["1", "2", "3", "4", "5"] result_list = list(currency_list.values()) print(result_list) selected_currency_name = "AUD" raw_identifier = [identifier for identifier, name in currency_list.items() if name == "Australian Dollar"] final_identifier = "".join(c for c in raw_identifier if c.isalpha()) print(final_identifier) class Converter: def __init__(self): self.base_frame = Frame(padx=10, pady=10) self.base_frame.grid() self.base_heading = Label(self.base_frame, text="Currency Converter", font=("Arial", "16", "bold") ) self.base_heading.grid(row=0) self.combo_frame = Frame(self.base_frame) self.combo_frame.grid(row=1) self.combo_box = ttk.Combobox(self.combo_frame, state="readonly", values=result_list) self.combo_box.grid(row=0, column=0) self.combo_box1 = ttk.Combobox(self.combo_frame, state="readonly", values=result_list) self.combo_box1.grid(row=0, column=1) # Conversion, help and history / export buttons self.button_frame = Frame(self.base_frame) self.button_frame.grid(row=4) # button list (button text | bg colour | command | row | column) button_details_list = [ ["1", "#990099", self.check_combobox, 0, 0], ["2", "#009900", "", 0, 1], ["3", "#CC6600", "", 1, 0], ["4", "#004C99", "", 1, 1] ] # List to hold buttons once they have been made self.button_ref_list = [] for item in button_details_list: self.make_button = Button(self.button_frame, text=item[0], bg=item[1], fg="#FFFFFF", font=("Arial", "12", "bold"), width=12, command=item[2]) self.make_button.grid(row=item[3], column=item[4], padx=5, pady=5) self.button_ref_list.append(self.make_button) def check_combobox(self): selection = self.combo_box.get() raw_identifier1 = [identifier for identifier, name in currency_list.items() if name == selection] final_identifier1 = "".join(c for c in raw_identifier1 if c.isalpha()) print(final_identifier1) print(f"https://api.frankfurter.dev/v1/latest?base={selection}&symbols=NZD") response = requests.get(f"https://api.frankfurter.dev/v1/latest?base={selection}&symbols=NZD") j_response = json.loads(response.text) print(j_response) j_response_final = j_response["rates"]["NZD"] print(j_response) messagebox.showinfo( message=f"The selected value is {selection}. The conversion rate from {selection} to NZD is {j_response_final}.", title="Selection" ) @staticmethod def asd(): print("") # main routine root = Tk() root.title("Currency Converter") Converter() root.mainloop()