Проблема с работой вложенного 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"}]}]