# 4/4/2025 - Charlotte Croce # JSON API LAB # # this program uses the Coinbase API to get a dictionary of currencies and their prices # the user can search for a currency by symbol and get its name and price # import requests API_URL = "https://api.coinbase.com/v2/currencies" response = requests.get(API_URL) # Parse the JSON response response_data = response.json() # create dictionary with currency symbol as key and name as value currency_dict = {currency['id']: currency['name'] for currency in response_data['data']} # not included in the dictionary because it is many seperate requests # and takes a while to process def get_currency_price(symbol): price_url = f"https://api.coinbase.com/v2/prices/{symbol}-USD/spot" try: price_response = requests.get(price_url) price_data = price_response.json() return price_data['data']['amount'] except (requests.exceptions.RequestException, KeyError, ValueError): return "Price unavailable" def display_list(): # ':<10' creates a 10 character wide column print(f"{'Symbol':<10} {'Name':<10}") for symbol, name in currency_dict.items(): print(f"{symbol:<10} {name:<10}") while True: # Prompt user for currency symbol symbol = input("Enter currency symbol ('l' to list currencies')('q' to quit): ").upper() if symbol == 'Q': break # if user enter's 'l' Display currencies as table if symbol == 'L': display_list() # Check if symbol is in dictionary if symbol in currency_dict: print(f"\n{currency_dict[symbol]}\n1{symbol} = ${get_currency_price(symbol)}USD\n") else: print(f"{symbol} not found")