Проблема с работой вложенного json во фреймворке django

Привет всем Я пытаюсь написать код для получения вложенного ответа на основе driver_id, я не могу решить эту проблему, пожалуйста, помогите мне.

views.py

def retrieve(self, request, *args, **kwargs):
        rating= connection.cursor()
        rating.execute(''' SELECT...... ''')
        rating_data=rating.fetchall()
        json_res=[]
        obj={}
        for row in rating_data:
            json_obj=dict(week_start_date=row[0],week_end_date=row[1],driver_id=row[2],driver_name=row[3],mobile=row[4],week_period=row[5],total_trips=row[6],driver_rating=row[7])
            if obj.get('driver_id')==row[2]:
                obj['mobile'].append(json_obj)

            else:
                if obj.get('driver_id')!=None:
                    json_res.append(obj)
                obj={}
                obj['driver_id']=row[2]
                obj['driver_name']=row[3]
                obj['mobile']=[json_obj]
        json_res.append(obj)
        return JsonResponse(json_res,safe=False)

текущий ответ

[{"driver_id": 10884, "driver_name": "Dipankar Mandal", "mobile": [{"week_start_date": "2022-05-09", "week_end_date": "2022-05-15", "driver_id": 10884, "driver_name": "Dipankar Mandal", "mobile": "8348447439", "week_period": "last week", "total_trips": 60, "driver_rating": "Mediocre"}]}, {"driver_id": 160, "driver_name": "Mohd Sohail Shaikh", "mobile": [{"week_start_date": "2022-04-18", "week_end_date": "2022-04-24", "driver_id": 160, "driver_name": "Mohd Sohail Shaikh", "mobile": "7718908984", "week_period": "4th week", "total_trips": 20, "driver_rating": "Mediocre"}, {"week_start_date": "2022-05-09", "week_end_date": "2022-05-15", "driver_id": 160, "driver_name": "Mohd Sohail Shaikh", "mobile": "7718908984", "week_period": "last week", "total_trips": 53, "driver_rating": "Mediocre"}]}, {"driver_id": 10884, "driver_name": "Dipankar Mandal", "mobile": [{"week_start_date": "2022-05-02", "week_end_date": "2022-05-08", "driver_id": 10884, "driver_name": "Dipankar Mandal", "mobile": "8348447439", "week_period": "2nd week", "total_trips": 60, "driver_rating": "Mediocre"}]}]

ожидаемый результат

[{"driver_id": 10884, "driver_name": "Dipankar Mandal", "mobile":
 [{"week_start_date": "2022-05-09", "week_end_date": "2022-05-15", "driver_id": 10884, "driver_name": "Dipankar Mandal", "mobile": "8348447439", "week_period": "last week", "total_trips": 60, "driver_rating": "Mediocre"},
{"week_start_date": "2022-05-02", "week_end_date": "2022-05-08", "driver_id": 10884, "driver_name": "Dipankar Mandal", "mobile": "8348447439", "week_period": "2nd week", "total_trips": 60, "driver_rating": "Mediocre"}]}, 
{"driver_id": 160, "driver_name": "Mohd Sohail Shaikh", "mobile": 
[{"week_start_date": "2022-04-18", "week_end_date": "2022-04-24", "driver_id": 160, "driver_name": "Mohd Sohail Shaikh", "mobile": "7718908984", "week_period": "4th week", "total_trips": 20, "driver_rating": "Mediocre"}, 
{"week_start_date": "2022-05-09", "week_end_date": "2022-05-15", "driver_id": 160, "driver_name": "Mohd Sohail Shaikh", "mobile": "7718908984", "week_period": "last week", "total_trips": 53, "driver_rating": "Mediocre"}]}]
Вернуться на верх