I have an API, where I need to return data. I want to make a “header”, where I specify the amount of tutors, the call returned. My current function looks like this:
def get_matching_tutors(filters):
formatted_tutors = []
matching_tutors = [tutor for tutor in tutor_list if matches_all_filters(filters, tutor)]
matching_tutors = sorted(matching_tutors, key = lambda i: i['hours'])
matching_tutors = sorted(matching_tutors, key = lambda i: i['tutor_amount_of_students'])
for tutor in matching_tutors:
data = {
"first_name": tutor["first_name"],
"last_name": tutor["last_name"],
"mobile_phone": tutor["mobile_phone"],
"email": tutor["email"],
"status": tutor["status"],
"more_courses": tutor["more_courses"],
"hours": tutor["hours"],
"tutor_amount_of_students": tutor["tutor_amount_of_students"],
"teachworks": tutor["teachworks"]
}
formatted_tutors.append(data)
return jsonify(formatted_tutors)
This is an example, of the response.
[
{
"email": "TEST@test.dk",
"first_name": "TEST",
"hours": 0,
"last_name": "TEST",
"mobile_phone": "",
"more_courses": "Yes",
"status": "Active",
"teachworks": "https://toptutors.teachworks.com/employees/114106",
"tutor_amount_of_students": 3
},
{
"email": "Jeppe6721@gmail.com",
"first_name": "Jeppe",
"hours": 28.0,
"last_name": "Vestergaard Nielsen",
"mobile_phone": "51781003",
"more_courses": "Yes",
"status": "Active",
"teachworks": "https://toptutors.teachworks.com/employees/133813",
"tutor_amount_of_students": 3
},
{
"email": "sidra200265@gmail.com",
"first_name": "Sidra",
"hours": 52.0,
"last_name": "Ahmed",
"mobile_phone": "52111671",
"more_courses": "Yes",
"status": "Active",
"teachworks": "https://toptutors.teachworks.com/employees/133751",
"tutor_amount_of_students": 3
}
]
I’d like to add a header, that specifies the amount of tutors/arrays that the response returned. So it would be at the top of the json response, “amount_of_tutors”: (Amount)
Advertisement
Answer
The simplest way is to add this line after the loop and change the return statement:
my_response = {'amount_of_tutors':len(formatted_tutors), 'tutors':formatted_tutors}
return jsonify(my_response)
But it is doubtful whether there is benefit having that extra key.