如何通过Binance API实时筛选并展示包含USDT的交易对价格信息?
- 内容介绍
- 文章标签
- 相关推荐
本文共计490个文字,预计阅读时间需要2分钟。
相关专题
本文介绍如何使用python从binance公开api获取实时币币价格数据,并通过简洁高效的列表推导式精准筛选出所有以usdt为计价单位的交易对(如btcusdt、ethusdt等),并格式化输出。
在对接加密货币行情数据时,常需从全量交易对中提取特定计价货币(如USDT)的子集。Binance的/ticker/price接口返回包含数千个交易对的JSON数组,每个对象形如{"symbol": "BTCUSDT", "price": "64321.11000000"}。我们只需保留symbol字段中包含"USDT"字符串的对象。
实现方式非常简洁:利用Python内置的列表推导式配合字符串成员判断即可完成过滤。以下是完整可运行代码:
import requests # 从Binance API获取实时价格数据 response = requests.get("https://api1.binance.com/api/v3/ticker/price") response.raise_for_status() # 检查HTTP请求是否成功 json_data = response.json() # 筛选symbol中包含"USDT"的所有对象(区分大小写,Binance符号均为大写) usdt_pairs = [item for item in json_data if "USDT" in item.get("symbol", "")] # 格式化打印,每行一个对象,提升可读性 print("共找到", len(usdt_pairs), "个USDT交易对:\n") for pair in usdt_pairs[:5]: # 示例仅显示前5条,避免刷屏 print(pair) # 如需全部打印,可替换为:print(*usdt_pairs, sep="\n")
⚠️ 注意事项:
- 健壮性处理:使用item.get("symbol", "")而非item["symbol"],避免因数据异常缺失symbol字段导致KeyError;
- 大小写敏感:Binance API返回的symbol均为大写(如"BTCUSDT"),因此直接匹配"USDT"是安全的;若未来需支持其他稳定币(如"USDC"或"FDUSD"),可扩展为any(suf in item.get("symbol", "") for suf in ["USDT", "USDC", "FDUSD"]);
- 性能与内存:该方法时间复杂度为O(n),适用于实时轻量筛选;若需高频调用,建议添加缓存或使用异步请求(如aiohttp)优化吞吐量。
最终,你将获得一个纯净的USDT计价交易对列表,可直接用于后续分析、监控或可视化任务。
本文共计490个文字,预计阅读时间需要2分钟。
相关专题
本文介绍如何使用python从binance公开api获取实时币币价格数据,并通过简洁高效的列表推导式精准筛选出所有以usdt为计价单位的交易对(如btcusdt、ethusdt等),并格式化输出。
在对接加密货币行情数据时,常需从全量交易对中提取特定计价货币(如USDT)的子集。Binance的/ticker/price接口返回包含数千个交易对的JSON数组,每个对象形如{"symbol": "BTCUSDT", "price": "64321.11000000"}。我们只需保留symbol字段中包含"USDT"字符串的对象。
实现方式非常简洁:利用Python内置的列表推导式配合字符串成员判断即可完成过滤。以下是完整可运行代码:
import requests # 从Binance API获取实时价格数据 response = requests.get("https://api1.binance.com/api/v3/ticker/price") response.raise_for_status() # 检查HTTP请求是否成功 json_data = response.json() # 筛选symbol中包含"USDT"的所有对象(区分大小写,Binance符号均为大写) usdt_pairs = [item for item in json_data if "USDT" in item.get("symbol", "")] # 格式化打印,每行一个对象,提升可读性 print("共找到", len(usdt_pairs), "个USDT交易对:\n") for pair in usdt_pairs[:5]: # 示例仅显示前5条,避免刷屏 print(pair) # 如需全部打印,可替换为:print(*usdt_pairs, sep="\n")
⚠️ 注意事项:
- 健壮性处理:使用item.get("symbol", "")而非item["symbol"],避免因数据异常缺失symbol字段导致KeyError;
- 大小写敏感:Binance API返回的symbol均为大写(如"BTCUSDT"),因此直接匹配"USDT"是安全的;若未来需支持其他稳定币(如"USDC"或"FDUSD"),可扩展为any(suf in item.get("symbol", "") for suf in ["USDT", "USDC", "FDUSD"]);
- 性能与内存:该方法时间复杂度为O(n),适用于实时轻量筛选;若需高频调用,建议添加缓存或使用异步请求(如aiohttp)优化吞吐量。
最终,你将获得一个纯净的USDT计价交易对列表,可直接用于后续分析、监控或可视化任务。

