如何查询唯一符号余额的二进制保证金账户?

2024-05-17 06:34:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前能够使用python binance v0.7.5中的以下代码成功查询我的保证金账户:

client.get_margin_account()

它返回保证金余额列表和列出交易所所有符号的信息,从最高余额到最低余额:

  {'tradeEnabled': True,
 'transferEnabled': True,
 'borrowEnabled': True,
 'marginLevel': '999.00000000',
 'totalAssetOfBtc': '0.00000000',
 'totalLiabilityOfBtc': '0.00000000',
 'totalNetAssetOfBtc': '0.00000000',
 'userAssets': [{'asset': 'BTC',
   'free': '0.00000000',
   'locked': '0.00000000',
   'borrowed': '0.00000000',
   'interest': '0.00000000',
   'netAsset': '0.00000000'},
  {'asset': 'ETH',
   'free': '0.00000000',
   'locked': '0.00000000',
   'borrowed': '0.00000000',
   'interest': '0.00000000',
   'netAsset': '0.00000000'}]}

我可以按如下方式查询特定资产:

client.get_margin_account()['userAssets'][0]['free']

但当我使用此代码时:

client.get_margin_account()['userAssets']['btc']['free']

我得到这个错误:

TypeError: list indices must be integers or slices, not str

如何在不指定索引位置的情况下查询帐户中的特定符号


Tags: 代码margin保证金clienttruefreeget符号
1条回答
网友
1楼 · 发布于 2024-05-17 06:34:34

选项1:使用next()

data = {'tradeEnabled': True,
 'transferEnabled': True,
 'borrowEnabled': True,
 'marginLevel': '999.00000000',
 'totalAssetOfBtc': '0.00000000',
 'totalLiabilityOfBtc': '0.00000000',
 'totalNetAssetOfBtc': '0.00000000',
 'userAssets': [{'asset': 'BTC',
   'free': '0.00000000',
   'locked': '0.00000000',
   'borrowed': '0.00000000',
   'interest': '0.00000000',
   'netAsset': '0.00000000'},
  {'asset': 'ETH',
   'free': '0.00000000',
   'locked': '0.00000000',
   'borrowed': '0.00000000',
   'interest': '0.00000000',
   'netAsset': '0.00000000'}]}


print( next(d for d in data['userAssets'] if d['asset'] == 'BTC')['free'] )

选项2:将userAssets转换为字典:

ua = {d['asset']: d for d in data['userAssets']}
print(ua['BTC']['free'])

相关问题 更多 >