Я пытаюсь сериализовать тривиальный объект (только атрибуты/значения), у меня есть этот метод в моем классе.
def to_json(self,client):
service=self._service
path="jsonphp/"
path+=client
if not os.path.exists(path):
os.makedirs(path)
with cdd(path):
print os.getcwd()
path=service+".json"
with open(path, 'w') as outfile:
try:
json.dump(self.__dict__, outfile)
except:
print "serialization failed"
вся часть перед попыткой/исключением состоит в том, чтобы перейти к правильной папке. Вроде работает плавно. Но когда я использую этот метод, он всегда печатает: serialization failed
из моего except
, даже если мой файл .json создан и данные в нем правильно сохранены: {"_attr1": "On", "_attr2": "On", "_attr3": "Off"}
Я думал, что блок except
посещался только в случае возникновения ошибки.
Мои вопросы следующие: это «нормальное» поведение try/except
?
Если нет, то как получить информацию об исключении, которое перехватывает мой за исключением?
Может ли это быть исключение где-то выше в коде (до того, как я вызову to_json()
), которое там перехвачено?