У меня есть следующий код, который печатает ключи и значения для ставок по займам и кредитам. Как я могу go упорядочить результаты в порядке возрастания наиболее эффективным образом? Я также имею дело с кортежами, и я действительно не хочу использовать кортежи в своем коде.
import time
import json
import requests
from natsort import natsorted
from tabulate import tabulate
def get_loanscan_rates():
borrowing_rates = {}
lending_rates = {}
url = 'https://api.loanscan.io/v1/interest-rates'
headers = {'accept': 'text/json',
'x-api-key': 'dPBkTf4Z047mTOOjIVu7T7xG6BSr7K5M3x7knjzP'}
data = requests.get(url, headers=headers).json()
for d in data:
for c in d['borrow']:
if c['symbol'] == 'USD' or c['symbol'] == 'USDT' or c['symbol'] == 'BTC' or c['symbol'] == "ETH":
new_key = c['symbol'] + '|' + d['provider']
borrowing_rates.setdefault(new_key, [])
borrowing_rates[new_key].append("{:.2%}".format(float(c['rate'])))
borrowing_rates[new_key].append(d['provider'])
for d in data:
for c in d['supply']:
if c['symbol'] == 'USD' or c['symbol'] == 'USDT' or c['symbol'] == 'BTC' or c['symbol'] == "ETH":
new_key = c['symbol'] + '|' + d['provider']
lending_rates.setdefault(new_key, [])
lending_rates[new_key].append("{:.2%}".format(float(c['rate'])))
lending_rates[new_key].append(d['provider'])
for key in borrowing_rates.keys():
borrowing_rates[key] = tuple(borrowing_rates[key])
for key in lending_rates.keys():
lending_rates[key] = tuple(lending_rates[key])
headers = ["Asset", "Interest Rate", "Provider"]
print(tabulate([(k,) + v for k, v in natsorted(borrowing_rates.items())], headers = headers))
headers = ["Asset", "Interest Rate", "Provider"]
print(tabulate([(k,) + v for k, v in natsorted(lending_rates.items())], headers = headers))