如何从指定数组中提取特定资产(如BTC)的balance数据?
问题
如何从给定的数组中检索特定数据?比如我想获取asset为BTC的条目里的balance值,对应的数组如下:
[{"accountAlias":"AusRSgfWfWSg","asset":"BTC","balance":"0.00000000","crossWalletBalance":"0.00000000","crossUnPnl":"0.00000000","availableBalance":"0.00000000","maxWithdrawAmount":"0.00000000","marginAvailable":true,"updateTime":0},{"accountAlias":"AusRSgfWfWSg","asset":"ADA","balance":"0.00000000","crossWalletBalance":"0.00000000","crossUnPnl":"0.00000000","availableBalance":"0.00000000","maxWithdrawAmount":"0.00000000","marginAvailable":true,"updateTime":0},{"accountAlias":"AusRSgfWfWSg","asset":"XRP","balance":"0.00000000","crossWalletBalance":"0.00000000","crossUnPnl":"0.00000000","availableBalance":"0.00000000","maxWithdrawAmount":"0.00000000","marginAvailable":true,"updateTime":0},{"accountAlias":"AusRSgfWfWSg","asset":"TUSD","balance":"0.00000000","crossWalletBalance":"0.00000000","crossUnPnl":"0.00000000","availableBalance":"0.00000000","maxWithdrawAmount":"0.00000000","marginAvailable":true,"updateTime":0},{"accountAlias":"AusRSgfWfWSg","asset":"DOT","balance":"0.00000000","crossWalletBalance":"0.00000000","crossUnPnl":"0.00000000","availableBalance":"0.00000000","maxWithdrawAmount":"0.00000000","marginAvailable":true,"updateTime":0},{"accountAlias":"AusRSgfWfWSg","asset":"SOL","balance":"0.00000000","crossWalletBalance":"0.00000000","crossUnPnl":"0.00000000","availableBalance":"0.00000000","maxWithdrawAmount":"0.00000000","marginAvailable":true,"updateTime":0},{"accountAlias":"AusRSgfWfWSg","asset":"BNB","balance":"0.00006119","crossWalletBalance":"0.00006119","crossUnPnl":"0.00000000","availableBalance":"0.00006119","maxWithdrawAmount":"0.00006119","marginAvailable":true,"updateTime":1680516643497},{"accountAlias":"AusRSgfWfWSg","asset":"ETH","balance":"0.00000000","crossWalletBalance":"0.00000000","crossUnPnl":"0.00000000","availableBalance":"0.00000000","maxWithdrawAmount":"0.00000000","marginAvailable":true,"updateTime":0},{"accountAlias":"AusRSgfWfWSg","asset":"USDT","balance":"400.91000000","crossWalletBalance":"400.91000000","crossUnPnl":"0.00000000","availableBalance":"400.91000000","maxWithdrawAmount":"400.91000000","marginAvailable":true,"updateTime":1680530690156},{"accountAlias":"AusRSgfWfWSg","asset":"USDP","balance":"0.00000000","crossWalletBalance":"0.00000000","crossUnPnl":"0.00000000","availableBalance":"0.00000000","maxWithdrawAmount":"0.00000000","marginAvailable":true,"updateTime":0},{"accountAlias":"AusRSgfWfWSg","asset":"USDC","balance":"0.00000000","crossWalletBalance":"0.00000000","crossUnPnl":"0.00000000","availableBalance":"0.00000000","maxWithdrawAmount":"0.00000000","marginAvailable":true,"updateTime":0},{"accountAlias":"AusRSgfWfWSg","asset":"BUSD","balance":"0.00000000","crossWalletBalance":"0.00000000","crossUnPnl":"0.00000000","availableBalance":"0.00000000","maxWithdrawAmount":"0.00000000","marginAvailable":true,"updateTime":0}]
解决方案
JavaScript 实现
用find()方法定位目标条目,再提取balance:
// 假设数组名为assets const assets = [/* 上述数组内容 */]; const btcItem = assets.find(item => item.asset === 'BTC'); const btcBalance = btcItem ? btcItem.balance : '未找到BTC条目'; console.log(btcBalance); // 输出:0.00000000
Python 实现
用循环或生成器表达式快速查找:
# 假设数组名为assets assets = [/* 上述数组内容 */] # 方法1:循环查找 btc_balance = None for item in assets: if item['asset'] == 'BTC': btc_balance = item['balance'] break print(btc_balance) # 输出:0.00000000 # 方法2:生成器表达式(更简洁) btc_balance = next((item['balance'] for item in assets if item['asset'] == 'BTC'), '未找到BTC条目') print(btc_balance)
内容的提问来源于stack exchange,提问作者selocan64
相关产品推荐
相关产品推荐

