No SQLAlchemy, como o método dict update interage com o ORM?

Então, eu tive uma tabela SQLAlchemy com uma coluna JSON:

from sqlalchemy.dialects.postgresql import JSON
class MyTable(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    my_json_column = db.Column(JSON)

E eu tentei atualizar a coluna com odict#update método da seguinte forma:

def foo(my_object, new_params):
    my_object.my_json_column.update(new_params)
    db.session.commit()

No entanto, isso não funcionou. Editar:O que eu quis dizer é que as atualizações não estavam sendo mantidas no banco de dados.

O que funcionou, foi o seguinte:

def foo(my_object, new_params):
    temp_params = my_object.my_json_column.copy()
    temp_params.update(new_params)
    my_object.my_json_column = new_params
    db.session.commit()

Suspeito que tenha algo a ver com "imutabilidade" ou o ORM apenas percebe alterações na atribuição direta, ou algo assim. Alguém sabe exatamente o porquê?

questionAnswers(1)

yourAnswerToTheQuestion