В коде:
try: js = json.loads(str(data))
except: js = None
Вы говорите Python, что если в json.loads
выдается исключение, вы хотите установить js
в None.Затем в следующем операторе if вы ссылаетесь непосредственно на js
.Проблема здесь в том, что исключение действительно было выдано, но ваш код после этой проверки не учитывает это.Чтобы решить вашу проблему, вы должны изменить свой оператор if на:
if (not js or 'status' not in js or js['status'] != 'OK'):
, если вы хотите, чтобы операторы внутри оператора if выполнялись при ошибке.
В качестве отступления, пожалуйста,не используйте встроенные операторы try
, except
или if
.Это делает ваш код очень сложным для отслеживания.