How should I add a field containing a list of dictionaries in Marshmallow Python?

Another approach for validating list of dictionaries in a field using one schema class.

from marshmallow import Schema, ValidationError


class PeopleSchema(Schema):
    name = fields.Str(required=True)
    age = fields.Int(required=True)


people = [{
    "name": "Ali",
    "age": 20
},
{
    "name": "Hasan",
    "age": 32
},
{
    "name": "Ali",
    "age": "twenty"  # Error: Not an int
}
]


def validate_people():
    try:
        validated_data = PeopleSchema(many=True).load(people)
    except ValidationError as err:
        print(err.messages)

validate_people()

Output:

{2: {'age': ['Not a valid integer.']}}

If the items in the list have the same shape, you can use a nested field within fields.List, like so:

class PersonSchema(Schema):
    name = fields.Str()
    age = fields.Int()

class RootSchema(Schema):
    people = fields.List(fields.Nested(PersonSchema))