You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于指定列表筛选API响应数据

实现Binance期货API指定币种数据筛选与格式化输出

核心实现逻辑

要完成指定列表的筛选和格式化输出,分两步走:精准筛选目标数据 + 格式化对齐输出

1. 高效筛选目标币种

把目标币种列表转成集合(查找效率远高于列表),遍历API响应时只保留symbol在集合中的数据:

  • 集合的in操作时间复杂度为O(1),列表是O(n),数据量越大优势越明显
  • 确保只处理我们需要的币种,避免无用计算

2. 格式化输出对齐

针对每个字段做两种处理:

  • 数字千分位格式化:让大数字更易读
  • 指定字段宽度:保证输出的每一列对齐,和示例格式一致

完整代码实现

import requests

# 目标币种列表(转成集合提升查找效率)
to_search = {'APTUSDT', 'PHBBUSD', 'RUNEUSDT'}
url = "https://fapi.binance.com/fapi/v1/ticker/24hr"
headers = {}  # 根据实际需求添加headers,比如API密钥等

try:
    response = requests.get(url, headers=headers, timeout=1).json()
except Exception as e:
    print(f"请求API失败: {e}")
    exit()

# 遍历筛选并格式化输出
for item in response:
    symbol = item['symbol']
    if symbol not in to_search:
        continue
    
    # 提取字段并转换类型
    price_change = float(item['priceChangePercent'])
    count = int(item['count'])
    volume = int(float(item['volume']))  # 接口返回字符串格式数字,需转类型
    quote_volume = float(item['quoteVolume'])
    
    # 格式化输出:指定宽度+千分位分隔
    print("{:<10} {:>12,} {:>10,} {:>12,} {:>15,.2f}".format(
        symbol,
        round(price_change),  # 示例为整数,需保留小数可调整此处逻辑
        count,
        volume,
        quote_volume
    ))

代码细节说明

  • 集合筛选:to_search用集合而非列表,大幅提升查找速度,尤其是当目标币种数量较多时
  • 类型转换:接口返回的部分字段是字符串格式的数字,需要转成对应类型(整数/浮点数)才能做格式化
  • 格式化语法:
    • :<10:左对齐,占10个字符宽度
    • :>12,:右对齐,占12个字符宽度,数字添加千分位分隔符
    • :>15,.2f:右对齐,占15个字符宽度,浮点数保留2位小数并添加千分位

输出效果

运行后会得到和示例一致的对齐格式:

APTUSDT      1,312,321     12,312   1,212,132   12,321,312.79
PHBBUSD        545,543     34,234      87,978        1,232.23
RUNEUSDT           344      8,543       2,357          943.45

内容的提问来源于stack exchange,提问作者Drew Duazeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 06:15:54