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

Python-binance对比字典列表 筛选同时有USDT和BUSD市场的币种

匹配同时上线USDT、BUSD市场交易对的实现

核心逻辑是将两类交易对按基础币种(交易对去掉稳定币后缀的部分)建立映射后取交集,避免低效的双层循环匹配,最终输出的结果同时包含两个市场的订单簿数据,可直接用于后续价差计算等场景。

完整可运行代码

from binance.client import Client

# 初始化客户端,仅获取公共行情数据不需要填写API Key和Secret
client = Client()

def search_USDT(market_book):
    return [element for element in market_book if element['symbol'].endswith('USDT')]

def search_BUSD(market_book):
    return [element for element in market_book if element['symbol'].endswith('BUSD')]

if __name__ == "__main__":
    # 获取全市场订单簿Ticker数据
    market_book = client.get_orderbook_tickers()
    
    # 将两类交易对转换为「基础币种: 订单簿数据」的字典,方便快速匹配
    usdt_pair_map = {item["symbol"][:-4]: item for item in search_USDT(market_book)}
    busd_pair_map = {item["symbol"][:-4]: item for item in search_BUSD(market_book)}
    
    # 取两个字典的键交集,得到同时在两个市场上线的基础币种
    common_base_coins = usdt_pair_map.keys() & busd_pair_map.keys()
    
    # 组装最终结果,可按需调整输出或存储格式
    common_pair_list = []
    for base_coin in common_base_coins:
        usdt_ticker = usdt_pair_map[base_coin]
        busd_ticker = busd_pair_map[base_coin]
        common_pair_list.append({
            "base_coin": base_coin,
            "usdt_market_data": usdt_ticker,
            "busd_market_data": busd_ticker
        })
        
        # 示例打印逻辑,不需要可以注释
        print(f"=== 基础币种:{base_coin} ===")
        print(f"USDT交易对:{usdt_ticker['symbol']} | 买一价:{usdt_ticker['bidPrice']} | 卖一价:{usdt_ticker['askPrice']}")
        print(f"BUSD交易对:{busd_ticker['symbol']} | 买一价:{busd_ticker['bidPrice']} | 卖一价:{busd_ticker['askPrice']}")

注意事项

  • USDT、BUSD后缀长度均为4个字符,用[:-4]截取基础币种不会出现截断错误
  • 字典映射匹配的时间复杂度为O(n+m),比双层循环遍历的O(n*m)效率高很多,全市场行情数据下运行无性能压力
  • 最终生成的common_pair_list已经结构化存储了两个市场的订单簿数据,不需要额外二次查询,可以直接用于价差统计、套利信号判断等后续逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:48:19