Генерация тела post запроса на Python

Вводная: есть генератор данных и билдер тела запроса:

from services.generator import generated_passengers_for_notebook
from config import Base


class PostAccountPassengersUpdate:
    generated = next(generated_passengers_for_notebook())

    def __init__(self, auth_token=None):
        self.auth_token = auth_token
        self.result = {}
        self.passengers_list = []
        self.passengers = {}
        self.documents = {}

    def set_auth_token(self):
        self.result["auth_token"] = self.auth_token
        return self

    def set_passengers_list(self):
        self.result["passengers"] = self.passengers_list
        return self

    def set_passengers(self):
        self.passengers_list.append(self.passengers)
        return self

    def set_passengers_middle_name(self, middle_name=generated.middle_name):
        self.passengers["middle_name"] = middle_name
        return self

    def set_documents(self):
        self.passengers["documents"] = self.documents
        return self

    def set_documents_passport_number(self, passport_number=generated.passport_number):
        self.documents["passport_number"] = passport_number
        return self

    def set_v(self, v=Base.V):
        self.result["v"] = v
        return self

    def build(self):
        self.set_auth_token()
        self.set_passengers_list()
        self.set_passengers()
        self.set_passengers_middle_name()
        self.set_documents()
        self.set_documents_passport_number()
        self.set_v()
        return self.result

при таком вызове:

body = PostAccountPassengersUpdate().build()

получаю такую структуру:

    {
    "auth_token": null,
    "passengers": [
        {
            "middle_name": "ГЕРАСИМОВИЧ",
            "documents": {
                "passport_number": "6941312176"
            }
        }
    ],
    "v": "2.0"
}

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

body = PostAccountPassengersUpdate().build(2)

результат хотелось:

{
    "auth_token": null,
    "passengers": [
        {
            "middle_name": "ГЕРАСИМОВИЧ",
            "documents": {
                "passport_number": "6941312176"
            }
        },
        {
            "middle_name": "ПЕТРОВИЧ",
            "documents": {
                "passport_number": "4536456374"
            }
        }
    ],
    "v": "2.0"
}

если сделать так, то все данные дублируются:

 def build(self, count):
        self.set_auth_token()
        self.set_passengers_list()
        for i in range(count):
            self.set_passengers()
            self.set_passengers_middle_name()
            self.set_passengers_last_name()
            self.set_passengers_first_name()
            self.set_passengers_birthday()
            self.set_passengers_gender()
            self.set_passengers_country()
            self.set_documents()
            self.set_documents_passport_number()
            self.set_documents_passport_expdate()
            self.set_documents_document_type()
        self.set_v()
        return self.result

Ответы (0 шт):