У меня довольно сложный объект (десериализованный json, поэтому у меня нет слишком много контроля над ним), что мне нужно проверить существование и повторить по довольно глубоким элементам, так что прямо сейчас у меня есть что-то вроде этого:Есть ли более чистый способ цепочки пустых проверок в Python?
if a.get("key") and a["key"][0] and a["key"][0][0] :
for b in a["key"][0][0] :
#Do something
который работает, но довольно уродлив. Кажется, что должен быть лучший способ сделать это, так что же более элегантное решение?
Хороший звонок, забыл о философии питон это лучше просить прощения, чем разрешения. Исходя из .NET, где вы пытаетесь избежать как можно большего исключения, потребуется некоторое время. – Davy8
В вашем коде есть ошибка: пожалуйста, измените 'except KeyError, IndexError:' to 'except (KeyError, IndexError):'. В противном случае он будет ловить 'KeyError' только и хранить его в переменной IndexError. –
Кроме того, вы захотите поймать 'TypeError', который будет сброшен, если' bs ['key'] 'содержит что-то, что не является последовательностью. –