如何从Binance API返回结果中提取指定price并转为float类型
问题描述
从Binance API获取到如下返回结果(实际为字典类型),需要提取fills列表中第一个字典的price字段值,并转换为float类型变量:
{'symbol': 'BTCUSDT', 'orderId': 16742382780, 'orderListId': -1, 'clientOrderId': 'Y9xSgRpsbgWC9eSBXDMdoI', 'transactTime': 1671964493104, 'price': '0.00000000', 'origQty': '0.03000000', 'executedQty': '0.03000000', 'cummulativeQuoteQty': '504.77939880', 'status': 'FILLED', 'timeInForce': 'GTC', 'type': 'MARKET', 'side': 'BUY', 'workingTime': 1671964493104, 'fills': [{'price': '16825.96000000', 'qty': '0.01004000', 'commission': '0.00000000', 'commissionAsset': 'BNB', 'tradeId': 2379384577}, {'price': '16825.99000000', 'qty': '0.01996000', 'commission': '0.00000000', 'commissionAsset': 'BNB', 'tradeId': 2379384578}], 'selfTradePreventionMode': 'NONE'}
目标是得到myFloat = 16825.96000000。
解决方案
直接通过字典键和列表索引定位目标字段,再用float()完成类型转换:
# 假设API返回结果存储在order_data变量中 order_data = {'symbol': 'BTCUSDT', 'orderId': 16742382780, 'orderListId': -1, 'clientOrderId': 'Y9xSgRpsbgWC9eSBXDMdoI', 'transactTime': 1671964493104, 'price': '0.00000000', 'origQty': '0.03000000', 'executedQty': '0.03000000', 'cummulativeQuoteQty': '504.77939880', 'status': 'FILLED', 'timeInForce': 'GTC', 'type': 'MARKET', 'side': 'BUY', 'workingTime': 1671964493104, 'fills': [{'price': '16825.96000000', 'qty': '0.01004000', 'commission': '0.00000000', 'commissionAsset': 'BNB', 'tradeId': 2379384577}, {'price': '16825.99000000', 'qty': '0.01996000', 'commission': '0.00000000', 'commissionAsset': 'BNB', 'tradeId': 2379384578}], 'selfTradePreventionMode': 'NONE'} # 提取目标price并转换为float myFloat = float(order_data['fills'][0]['price']) print(myFloat) # 输出: 16825.96
步骤说明
order_data['fills']:获取返回结果中的交易明细列表[0]:选取列表中的第一笔交易明细字典['price']:提取该字典中的价格字符串float():将字符串格式的价格转换为浮点数类型
内容的提问来源于stack exchange,提问作者Rasit Aklar
相关产品推荐
相关产品推荐

