API's atsakymai
1
import requests
url = 'https://api.frankfurter.app/'
def get_rate(base, to):
payload = {
"from": base,
"to": to,
}
r = requests.get(f"{url}/latest", params=payload)
result_dict = r.json()
try:
print(f"{base}-{to}:\t{result_dict['rates'][to]}")
except:
r = requests.get(f'{url}/currencies')
currencies_dict = r.json()
print(f"Wrong currency. Currencies: {", ".join(currencies_dict.keys())}")
get_rate('EUR', 'GBP')
get_rate('ZZZ', 'GBP')
Alternatyva:
import requests
url = 'https://api.frankfurter.app/'
def get_currency_list():
r = requests.get(f'{url}currencies')
dictionary = r.json()
currency_list = []
for key in dictionary.keys():
currency_list.append(key)
return currency_list
def get_rate(base, to):
if base in get_currency_list() and to in get_currency_list():
payload = {'from': base, 'to': to}
r = requests.get(f'{url}latest', params=payload)
dictionary = r.json()
print(f'{dictionary["base"]}-{to}:\t{dictionary["rates"][to]}')
else:
print(f'''
Neteisingai suvestos valiutos. Galimų variantų sąrašas:
{get_currency_list()}
''')
get_rate('ZZZ', 'GBP')
2
import requests
url = 'https://api.frankfurter.app/'
def dict_converter(dict_to_convert, to):
original = dict_to_convert["rates"]
converted = {original[date][to]: date for date in original}
return converted
def get_rate(base, to, start_date, end_date):
payload = {
"from": base,
"to": to,
}
r = requests.get(f"{url}/{start_date}..{end_date}", params=payload)
result_dict = r.json()
try:
converted = dict_converter(result_dict, to)
max_rate = max(converted)
min_rate = min(converted)
print(f'''
Valiutų poroje {base}-{to}, periode nuo {start_date} iki {end_date}:
Žemiausias kursas buvo {converted[min_rate]} - {min_rate}
Aukščiausias kursas buvo {converted[max_rate]} - {max_rate}
''')
except:
r = requests.get(f'{url}/currencies')
currencies_dict = r.json()
print(f"Wrong currency. Currencies: {", ".join(currencies_dict.keys())}")
get_rate('EUR', 'GBP', "2024-01-01", "2024-02-01")
get_rate('ZZZ', 'GBP', "2024-01-01", "2024-02-01")
Alternatyva:
import requests
import json
url = 'https://api.frankfurter.app/'
def get_key(val, dct):
"""Little key by value extractor"""
for k, v in dct.items():
if val == v:
return k
def currency_pair_analysis(base, to, start_date, end_date):
payload = {'from': base, 'to': to} # susikuriame parametrų žodyną
r = requests.get(f'{url}{start_date}..{end_date}', params=payload) # susikuriame užklausą pagal API dokumentaciją
result = json.loads(r.text) # Atsakymą paverčiame Python žodynu
new_dict = {} # Susikuriame tuščią žodyną
for k, v in result['rates'].items(): # Užpildome jį reikšmėmis 'data': 'kursas'
new_dict[k] = v[to]
values_list = list(new_dict.values()) # Susikuriame kursų sąrašą
min_value = min(values_list) # Ištraukiame žemiausią reikšmę
max_value = max(values_list) # Ištraukiame aukščiausią reikšmę
min_date = get_key(min_value, new_dict) # Panaudojame pagalbinę funkciją rakto pagal reikšmę paieškai (gauname datą)
max_date = get_key(max_value, new_dict) # Gauname kitą datą
''' Formuojame Atsakymą:'''
print(f'''
Valiutų poroje {base}-{to}, periode nuo {start_date} iki {end_date}:
Žemiausias kursas buvo {min_date} - {min_value}
Aukščiausias kursas buvo {max_date} - {max_value}
''')
currency_pair_analysis('EUR', 'USD', '2015-01-01', '2015-01-10')
# Valiutų poroje EUR-GBP, periode nuo 2019-01-01 iki 2019-12-31:
# Žemiausias kursas buvo 2019-12-09 - 0.84116
# Aukščiausias kursas buvo 2019-08-12 - 0.92203