Monstera

projektB

Jan 15th, 2023 (edited)
954
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.56 KB | None | 0 0
  1. import json
  2. from urllib.request import urlopen
  3. from datetime import datetime
  4.  
  5.  
  6. def date_format(day: str):  # making format of date 'better'
  7.     if day[8:10] == '01':
  8.         return "1st"
  9.     if day[8:10] == '02':
  10.         return "2nd"
  11.     if day[8:10] == '03':
  12.         return "3rd"
  13.     if day[8] == '0':
  14.         return f"{day[9]}th"
  15.     else:
  16.         return f"{day[8:10]}th"
  17.  
  18.  
  19. max_date = " "
  20. max_value = 0
  21. min_date = ""
  22. min_value = 10
  23.  
  24. url = "https://api.nbp.pl/api/exchangerates/rates/a/chf/2022-01-01/2023-01-01/?format=json"
  25.  
  26. json_url = urlopen(url)
  27. data = json.loads(json_url.read())
  28.  
  29. for i in range(0, len(data["rates"])):
  30.     if data["rates"][i]["mid"] > max_value:  # finding maximum
  31.         max_value = data["rates"][i]["mid"]
  32.         max_date = data["rates"][i]["effectiveDate"]
  33.  
  34.     if data["rates"][i]["mid"] < min_value:  # finding minimum
  35.         min_value = data["rates"][i]["mid"]
  36.         min_date = data["rates"][i]["effectiveDate"]
  37.  
  38. max_date_object = datetime.strptime(max_date, '%Y-%m-%d').date()
  39. min_date_object = datetime.strptime(min_date, '%Y-%m-%d').date()  # string -> date class
  40.  
  41. print(f"For CHF the maximum value of currency rate was on "
  42.       f"{max_date_object.strftime('%a')} {date_format(max_date)} "
  43.       f"{max_date_object.strftime('%b %Y')} and it was: "
  44.       f"{max_value}[PLN] for 1[CHF]")
  45. print(f"For CHF the minimum value of currency rate was on "
  46.       f"{min_date_object.strftime('%a')} {date_format(min_date)} "
  47.       f"{min_date_object.strftime('%b %Y')} and it was: "
  48.       f"{min_value}[PLN] for 1[CHF]")
  49.  
  50.  
  51.  
Advertisement
Add Comment
Please, Sign In to add comment