Вы неправильно поняли, coin['orderBooks'][i]
- это не dict
(даже выдает ошибку), i
- ошибка, вы должны назвать ее по-другому, так как вы получаете доступ к i['orderBook']
, вы видите, что это dict, и чтобы удалить его, вы можете использовать его индекс в массиве
Это будет выглядеть так:
for coin in orderbooks:
for idx, val in enumerate(coin['orderBooks']):
bid_price = val['orderBook']['bids']
ask_price = val['orderBook']['asks']
if not bid_price or not ask_price:
del coin['orderBooks'][idx]
Но так как удаление во время итерации не очень хорошая идея, вы можете оставьте хорошие , с легким пониманием oop
for coin in orderbooks:
coin['orderBooks'] = [val for val in coin['orderBooks']
if val['orderBook']['bids'] and val['orderBook']['askas']]
Также вы можете проверить пустой список напрямую с помощью значения bool (bool([]) == False
)