Python 循环内带有布尔值的if语句:';非类型';错误
我一直在搜索stackoverflow,发现很多帖子都在谈论这个错误,我尝试了很多解决方案,但都没有成功。这个问题看起来很简单,我真的不知道怎么了 我对Binance进行API调用,输出是一个长字典。我得到了我感兴趣的密钥,它会返回True或False。当我测试类型时,它显示它是一个布尔值。我只是为列表中的不同符号运行一个循环,并测试该值是否为真,如果为真,则将符号名称附加到一个新列表中Python 循环内带有布尔值的if语句:';非类型';错误,python,loops,dictionary,boolean,binance,Python,Loops,Dictionary,Boolean,Binance,我一直在搜索stackoverflow,发现很多帖子都在谈论这个错误,我尝试了很多解决方案,但都没有成功。这个问题看起来很简单,我真的不知道怎么了 我对Binance进行API调用,输出是一个长字典。我得到了我感兴趣的密钥,它会返回True或False。当我测试类型时,它显示它是一个布尔值。我只是为列表中的不同符号运行一个循环,并测试该值是否为真,如果为真,则将符号名称附加到一个新列表中 test = ['BTCUSDT', 'ETHBTC', 'ATXETH', 'BATETH'] ticke
test = ['BTCUSDT', 'ETHBTC', 'ATXETH', 'BATETH']
tickers = []
for x in test:
info = client.get_symbol_info(x)
a = info['isMarginTradingAllowed']
if a:
tickers.append(x)
TypeError: 'NoneType' object is not subscriptable
非常感谢您的帮助。这是信息的输出
{'symbol': 'BTCUSDT',
'status': 'TRADING',
'baseAsset': 'BTC',
'baseAssetPrecision': 8,
'quoteAsset': 'USDT',
'quotePrecision': 8,
'baseCommissionPrecision': 8,
'quoteCommissionPrecision': 8,
'orderTypes': ['LIMIT',
'LIMIT_MAKER',
'MARKET',
'STOP_LOSS_LIMIT',
'TAKE_PROFIT_LIMIT'],
'icebergAllowed': True,
'ocoAllowed': True,
'quoteOrderQtyMarketAllowed': True,
'isSpotTradingAllowed': True,
'isMarginTradingAllowed': True}
您的错误在info变量中,对于测试列表中的一个x为无 此检查可解决以下问题:
test = ['BTCUSDT', 'ETHBTC', 'ATXETH', 'BATETH']
tickers = []
for x in test:
info = client.get_symbol_info(x)
if info is None: continue
a = info['isMarginTradingAllowed']
if a:
tickers.append(x)
您的错误在info变量中,对于测试列表中的一个x为无 此检查可解决以下问题:
test = ['BTCUSDT', 'ETHBTC', 'ATXETH', 'BATETH']
tickers = []
for x in test:
info = client.get_symbol_info(x)
if info is None: continue
a = info['isMarginTradingAllowed']
if a:
tickers.append(x)
client.get\u symbol\u info(x)
对于从test
获取的至少一个x
为None
。您是否已检查此API调用是否成功用于您使用的所有输入?client.get\u symbol\u info(x)
是None
,至少有一个x
来自test
。您是否已检查此API调用是否对您使用的所有输入都成功?