Pydantic. Как сериализовать список моделей?

Pydantic - это библиотека для проверки и сериализации данных в Python, которая обеспечивает простой и эффективный способ определения и использования моделей данных. Чтобы сериализовать список моделей с использованием Pydantic, вы можете использовать два основных подхода.

Первый подход - использование метода dict(). Pydantic моделия имеют метод dict(), который преобразует объект модели в словарь, где ключи словаря - это имена полей, а значения - это значения полей. Вы можете использовать этот метод для каждого объекта модели в списке, чтобы преобразовать список моделей в список словарей. Например:

from pydantic import BaseModel

class MyModel(BaseModel):
    name: str
    age: int

models = [
    MyModel(name='Alice', age=25),
    MyModel(name='Bob', age=30),
    MyModel(name='Charlie', age=35)
]

serialized = [model.dict() for model in models]

В результате, serialized будет содержать список словарей, где каждый словарь представляет одну модель:

[
    {'name': 'Alice', 'age': 25},
    {'name': 'Bob', 'age': 30},
    {'name': 'Charlie', 'age': 35}
]

Второй подход - использование модуля json. Вы также можете использовать модуль json для сериализации списка моделей в формат JSON. Первым шагом, вы можете преобразовать каждую модель в словарь с помощью метода dict(), а затем использовать функцию json.dumps() для сериализации списка словарей в JSON строку. Например:

import json
from pydantic import BaseModel

class MyModel(BaseModel):
    name: str
    age: int

models = [
    MyModel(name='Alice', age=25),
    MyModel(name='Bob', age=30),
    MyModel(name='Charlie', age=35)
]

serialized = json.dumps([model.dict() for model in models])

В результате, serialized будет содержать JSON строку:

'[{"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}, {"name": "Charlie", "age": 35}]'

Оба этих подхода позволяют вам сериализовать список моделей с использованием Pydantic. Выбор зависит от ваших потребностей и предпочтений.