Сериализатор Django Как перебирать значение словаря и возвращать его в сериализаторе

#python #django #dictionary #django-serializer

Вопрос:

У меня есть следующий словарь внутри списка

 self.passengers = [{'first_name':'Harry','last_name':'kane'},{'first_name':'cristiano','last_name':'aviero'}
 

Я установил свой сериализатор следующим образом

 class PassengerSerializer(serializers.Serializer):
    first_name = serializers.CharField()
    last_name = serializers.CharField()


class TicketDetailSerializer(serializers.Serializer):
    passenger = PassengerDetailSerializer(many=True)
 

Я установил свой код следующим образом для извлечения данных о пассажирах

 'passenger': [{
               'last_name': [passenger['last_name'] for passenger in self.passengers],
                'first_name': [passenger['first_name'] for passenger in self.passengers]
                }],
 

Но я получаю только имя- > «гарри» и фамилию->> кейн, что мне делать дальше, чтобы получить весь словарь имени и фамилии self.passengers?
Я получаю вывод в виде:

 "passenger": [
        {
            "lastname": "['kane', 'aviero']",
            "firstname": "['harry', 'cristiano']"
        }
    ]
 

Я хочу, чтобы результат был таким

 "passenger": [
            {
                "lastname": "kane",
                "firstname": "harry"
            },
            {
                "lastname": "aviero",
                "firstname": "cristiano"
            }
        ]
 

Комментарии:

1. Ты пропустил букву «с»? self.passengers = [{‘fi… vs пассажир = PassengerDetailSerializer(много=Верно)

2. нет, нет, это не проблема, я просто сохранил часть кода, поэтому он был потерян

3. В чем разница между вашими входными данными и желаемыми выходными данными?

4. Я уже упоминал там

Ответ №1:

 'passenger': [{
               'last_name': passenger['last_name'],
                'first_name': passenger['first_name']
              } for passenger in self.passengers ]
 

Комментарии:

1. все тот же результат

2. Это очень маловероятно. Может быть, что-то еще не так.

3. Единственное различие, которое я вижу между выводом self.passengers и ожидаемым результатом, заключается в том, что _ в ключах вывода нет s, все остальное одинаково. поправьте меня, если я ошибаюсь.

4. это не проблема в переменной, так как я просто заменил свои основные переменные кода в своем вопросе на переменные, но в моей среде разработки это было сделано в качестве ответа в конце он получает понимание списка, поэтому значение находится в списке