Helping Snippets - Add attributes to your SQLAlchemy model from a dictionary

I wanted to add all attributes from a dictionary to my model, the only problem is, the dictionary has to have the exact same keys as the model. In my case the dictionary has more keys, so I ran into errors when using MyModel(**dict).

This is why I created a small function I placed inside my model class, to handle that problem for me:

class MyModel:
	...
    
    
    def add_attributes_from_dict(self, attribute_list: dict) -> None:
        model_attribute_list = self.__mapper__.attrs.keys()

        for key, value in attribute_list.items():

            if key in model_attribute_list:
                setattr(self, key, value)

This will only add the attributes if they are present inside the model.

If you know a better way to solve this, let me know on Twitter