'getting problem with working nested json in django framework
Hi Everyone I am trying to writing a code to get nested response based on driver_id.
I am not able to solve this issue, kindly help me out.
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)
current response
[{'driver_id': 10884,
'driver_name': 'Dipankar Mandal',
'mobile': [{'driver_id': 10884,
'driver_name': 'Dipankar Mandal',
'driver_rating': 'Mediocre',
'mobile': '8348447439',
'total_trips': 60,
'week_end_date': '2022-05-15',
'week_period': 'last week',
'week_start_date': '2022-05-09'}]},
{'driver_id': 160,
'driver_name': 'Mohd Sohail Shaikh',
'mobile': [{'driver_id': 160,
'driver_name': 'Mohd Sohail Shaikh',
'driver_rating': 'Mediocre',
'mobile': '7718908984',
'total_trips': 20,
'week_end_date': '2022-04-24',
'week_period': '4th week',
'week_start_date': '2022-04-18'},
{'driver_id': 160,
'driver_name': 'Mohd Sohail Shaikh',
'driver_rating': 'Mediocre',
'mobile': '7718908984',
'total_trips': 53,
'week_end_date': '2022-05-15',
'week_period': 'last week',
'week_start_date': '2022-05-09'}]},
{'driver_id': 10884,
'driver_name': 'Dipankar Mandal',
'mobile': [{'driver_id': 10884,
'driver_name': 'Dipankar Mandal',
'driver_rating': 'Mediocre',
'mobile': '8348447439',
'total_trips': 60,
'week_end_date': '2022-05-08',
'week_period': '2nd week',
'week_start_date': '2022-05-02'}]}]
expected output
[{'driver_id': 10884,
'driver_name': 'Dipankar Mandal',
'mobile': [{'driver_id': 10884,
'driver_name': 'Dipankar Mandal',
'driver_rating': 'Mediocre',
'mobile': '8348447439',
'total_trips': 60,
'week_end_date': '2022-05-15',
'week_period': 'last week',
'week_start_date': '2022-05-09'},
{'driver_id': 10884,
'driver_name': 'Dipankar Mandal',
'driver_rating': 'Mediocre',
'mobile': '8348447439',
'total_trips': 60,
'week_end_date': '2022-05-08',
'week_period': '2nd week',
'week_start_date': '2022-05-02'}]},
{'driver_id': 160,
'driver_name': 'Mohd Sohail Shaikh',
'mobile': [{'driver_id': 160,
'driver_name': 'Mohd Sohail Shaikh',
'driver_rating': 'Mediocre',
'mobile': '7718908984',
'total_trips': 20,
'week_end_date': '2022-04-24',
'week_period': '4th week',
'week_start_date': '2022-04-18'},
{'driver_id': 160,
'driver_name': 'Mohd Sohail Shaikh',
'driver_rating': 'Mediocre',
'mobile': '7718908984',
'total_trips': 53,
'week_end_date': '2022-05-15',
'week_period': 'last week',
'week_start_date': '2022-05-09'}]}]
Diff checker. Old is current, new is expected
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
