''deserializing' JSON to sqlalchemy model

I'm storing some RESTful api calls into a relational database using sqlalchemy, and I'm looking for a way to 'deserialize' or pythonify some or all of the incoming fields, for instance I might have a json object like

{
  'id': 1,
  'created_at': '2021-05-27T03:22:38Z',
  'count': '3'
}

and I would like a way to "automatically" deserialize the data, similar to how djangorestframework serializers work where fields like "created_at" could be defined as datetime fields, and you could optionally cast 'count' as an integer, and run something like

...setup

# get the json from before as a dict 
item = client.get_item()

# somehow serialize here
session = Session()
item_model = Item(**item_data[0])
session.add(item_model)
session.commit()

https://www.django-rest-framework.org/api-guide/serializers/



Solution 1:[1]

You have multiple well knowns module to perform serialization (independant of any framework):

Marshmallow: https://marshmallow.readthedocs.io/en/stable/ Typesystem (by the creator of DRF): https://github.com/encode/typesystem

You can also do your own serializer, based on DRF serializer code, if your use case is simple, or just perform a lookup of your dict fields that perform validation/transformation.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Sami Tahri