Python jsonpickle новые добавленные атрибуты в восстановленных объектах - PullRequest
0 голосов
/ 21 января 2020

Я использую jsonpickle для хранения объектов некоторого класса A в MongoDb, и все было хорошо, я мог писать и читать объекты, пока не добавил новые свойства в этот класс. Теперь, после прочтения объекта из базы данных и удаления его с помощью Unpickler().restore(doc), новые созданные свойства отсутствуют для этого объекта, и я получаю AttributeError, если попытаюсь получить к ним доступ.

Изначально класс был таким:

class WelcomeUserState:
    def __init__(self, did_welcome: bool = False):      
        self.did_welcome_user = did_welcome

и все было хорошо. Но затем я отредактировал код класса, добавив атрибут:

class WelcomeUserState:
    def __init__(self, did_welcome: bool = False, some_attribute=8):
        self.did_welcome_user = did_welcome
        self.some_attribute = some_attribute

Теперь выполняю этот код

doc = get_from_db()
result_obj = Unpickler().restore(doc)

result_object не имеет атрибута some_attribute, но я хочу должно быть равно значению по умолчанию (8).

...