如何按升序打印输出?

2024-10-02 14:19:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码,用于打印借贷利率的键和值。我如何才能以最有效的方式按升序排列结果?我也在处理元组,我真的不想在代码中使用元组

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))




Tags: orkeyinimportjsonnewforsymbol