获取期货资产余额 Binance
Get Futures Asset Balance Binance
我尝试搜索答案,但无济于事。
如何获取期货资产的特定资产余额,例如USDT?
[{'accountAlias': 'xx', 'asset': 'DOT', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'BTC', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'SOL', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'BNB', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'ETH', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'ADA', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'USDT', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'XRP', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'BUSD', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}]
我的代码:
acc_balance = client.futures_account_balance()
print(acc_balance)
for check_balance in acc_balance["accountAlias"]:
if check_balance["asset"] == "USDT":
usdt_balance = check_balance["balance"]
错误:
for check_balance in acc_balance["accountAlias"]:
TypeError: list indices must be integers or slices, not str
这里有什么错误?谢谢
acc_balance
是列表,不是字典。您不应该使用字符串对其进行索引。
解决这个问题,我们得到以下信息:
for check_balance in acc_balance:
if check_balance["asset"] == "USDT":
usdt_balance = check_balance["balance"]
print(usdt_balance) # Prints 0.0000
这意味着您无法通过像“accountAlias”这样的 str 索引访问您的 acc_balance 列表。通常对于列表,您只能通过 int 引用索引。但是,在您的情况下,您使用的是列表中的字典
[{'accountAlias': 'xx', 'asset': 'DOT', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'BTC', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'SOL', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'BNB', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'ETH', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'ADA', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'USDT', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'XRP', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'BUSD', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}]
所以你可以做到这一点,
acc_balance = client.futures_account_balance()
作为
acc_balance = client.futures_account_balance()[0]
这样你的 acc_balance 就是字典而不是列表了
如果您的目标是 USDT
,这应该会从数据结构中为您提供 USDT balance
。如果没有,您可以按照之前的回答进行循环。
acc_balance = float(client.futures_account_balance()[6]['balance'])
我尝试搜索答案,但无济于事。
如何获取期货资产的特定资产余额,例如USDT?
[{'accountAlias': 'xx', 'asset': 'DOT', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'BTC', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'SOL', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'BNB', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'ETH', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'ADA', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'USDT', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'XRP', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'BUSD', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}]
我的代码:
acc_balance = client.futures_account_balance()
print(acc_balance)
for check_balance in acc_balance["accountAlias"]:
if check_balance["asset"] == "USDT":
usdt_balance = check_balance["balance"]
错误:
for check_balance in acc_balance["accountAlias"]:
TypeError: list indices must be integers or slices, not str
这里有什么错误?谢谢
acc_balance
是列表,不是字典。您不应该使用字符串对其进行索引。
解决这个问题,我们得到以下信息:
for check_balance in acc_balance:
if check_balance["asset"] == "USDT":
usdt_balance = check_balance["balance"]
print(usdt_balance) # Prints 0.0000
这意味着您无法通过像“accountAlias”这样的 str 索引访问您的 acc_balance 列表。通常对于列表,您只能通过 int 引用索引。但是,在您的情况下,您使用的是列表中的字典
[{'accountAlias': 'xx', 'asset': 'DOT', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'BTC', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'SOL', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'BNB', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'ETH', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'ADA', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'USDT', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'XRP', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}, {'accountAlias': 'xx', 'asset': 'BUSD', 'balance': '0.00000000', 'withdrawAvailable': '0.00000000', 'updateTime': 0}]
所以你可以做到这一点,
acc_balance = client.futures_account_balance()
作为
acc_balance = client.futures_account_balance()[0]
这样你的 acc_balance 就是字典而不是列表了
如果您的目标是 USDT
,这应该会从数据结构中为您提供 USDT balance
。如果没有,您可以按照之前的回答进行循环。
acc_balance = float(client.futures_account_balance()[6]['balance'])