Advertisement
Lewi7tan

Currency Rate

Jan 15th, 2023 (edited)
785
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.41 KB | Source Code | 0 0
  1. import urllib.request
  2. import json
  3. from datetime import datetime
  4.  
  5. url_string = "http://api.nbp.pl/api/exchangerates/rates/a/gbp/2022-01-01/2023-01-01/?format=json"
  6.  
  7. def format_date(date: str):
  8.     day = date[4:6]
  9.  
  10.     if day[0] == '0':
  11.         date = date.replace(day, day[1:], 1)
  12.         day = day[1]
  13.  
  14.     match day:
  15.         case "1" | "21" | "31":
  16.             date = date.replace(day, day + 'st', 1)
  17.         case "2" | "22":
  18.             date = date.replace(day, day + 'nd', 1)
  19.         case "3" | "23":
  20.             date = date.replace(day, day + 'rd', 1)
  21.         case _:
  22.             date = date.replace(day, day + 'th', 1)
  23.  
  24.     return date
  25.  
  26.  
  27. with urllib.request.urlopen(url_string) as url:
  28.     data = json.load(url)
  29.     print("Currency: ", data['currency'])
  30.  
  31.     daily_rates = []
  32.     for row in data['rates']:
  33.         day = {'date': row['effectiveDate'],
  34.                'rate': row['mid']}
  35.  
  36.         daily_rates.append(day)
  37.  
  38.     peak = max(daily_rates, key=lambda item: item['rate'])
  39.     depression = min(daily_rates, key=lambda item: item['rate'])
  40.    
  41.     peak_date = datetime.strptime(peak['date'], "%Y-%m-%d").date().strftime("%a %d %b %Y")
  42.     depression_date = datetime.strptime(depression['date'], "%Y-%m-%d").date().strftime("%a %d %b %Y")
  43.  
  44.     print(f"Max: {peak['rate']} on:", format_date(peak_date))
  45.     print(f"Max: {depression['rate']} on:", format_date(depression_date))
  46.        
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement