为何通过Binance API无法获取USDT/KGS、USDT/KZT价格对?
解决Binance API无法获取USDT/KGS汇率的问题
你遇到的KeyError是因为Binance平台不存在USDTKGS这个交易对。当请求无效交易对时,API返回的不是包含symbol和price的正常数据,而是类似{"code":-1121,"msg":"Invalid symbol."}的错误信息,直接访问data['symbol']自然会触发KeyError。
以下是具体解决办法:
1. 先验证API返回结果,避免程序报错
修改代码先判断请求是否成功,再处理数据:
import requests key = "https://api.binance.com/api/v3/ticker/price?symbol=USDTKGS" data = requests.get(key).json() # 先检查是否返回错误 if 'code' in data: print(f"API错误提示: {data['msg']}") else: print(f"{data['symbol']} price is {data['price']}")
2. 通过跨汇率计算USDT/KGS价格
Binance不支持USDT与KGS(吉尔吉斯斯坦索姆)的直接交易对,你可以用USD作为中间货币间接计算:
- 先获取Binance上USDT对USD的实时价格
- 再获取USD对KGS的实时法币汇率
- 两者相乘得到USDT/KGS的价格
示例代码:
import requests # 获取Binance上USDT/USD的价格 usdt_usd_url = "https://api.binance.com/api/v3/ticker/price?symbol=USDTUSD" usdt_usd_data = requests.get(usdt_usd_url).json() if 'price' not in usdt_usd_data: print("无法获取USDT/USD汇率") exit() usdt_to_usd = float(usdt_usd_data['price']) # 替换为实时USD/KGS汇率(可从财经平台或法币API获取) usd_to_kgs = 89.5 # 示例固定汇率,需更新为实时值 # 计算最终汇率 usdt_to_kgs = usdt_to_usd * usd_to_kgs print(f"USDT/KGS 实时价格: {usdt_to_kgs:.2f}")
3. 换用支持KGS的加密交易所
如果需要直接的USDT/KGS交易对数据,可以选择支持吉尔吉斯斯坦索姆的本地化加密交易所,调用对应平台的API获取实时价格。
内容的提问来源于stack exchange,提问作者Fedor Pasynkov
相关产品推荐
相关产品推荐

