Я делаю запрос с Flask-SQLAlchemy , а затем добавляю результат в список.Вот фрагмент моего кода:
students_payment = db.session.query(Payment, Student, Course).join(Student, Course).distinct(Payment.student_id)
student_per_course = []
for data in students_payment:
student_per_course.append({data.Course.name: [{data.Payment.payment_for_month.value: students_payment.filter(Payment.payment_for_month == data.Payment.payment_for_month).count()}]})
Когда я печатаю переменную student_per_course
, я получаю такой результат:
[{'Tahsin': [{'January': 1}]}, {'Arabic Language': [{'September': 1}]}, {'Arabic Language': [{'August': 2}]}, {'Arabic Language': [{'August': 2}]}]
В месяце есть повторяющееся значение, котороеавгуст в этом результате запроса.
Затем я пытаюсь удалить дублирующееся значение с помощью этого следующего кода :
list_of_unique_dicts = []
for dict_ in student_per_course:
if dict_ not in list_of_unique_dicts:
list_of_unique_dicts.append(dict_)
И вот результат, когда я печатаюlist_of_unique_dicts
:
[{'Tahsin': [{'January': 1}]}, {'Arabic Language': [{'September': 1}]}, {'Arabic Language': [{'August': 2}]}]
Повторяющееся значение в месяце было удалено, но один из ключей словаря все еще получил повторяющееся значение.
Результат, который я хочу получить, похож наthis:
[
{
'Tahsin': [
{'January': 1}
]
},
{
'Arabic Language':
[
{'September': 1,
'August': 2
}
]
},
]
В результате, приведенном выше, результат для ключей Arabic Language
объединен со всеми значениями из ключей.
Итак, вопрос в том, чтонеправильно в моем запросе ..?, в какой момент я должен изменить его ..?, или я должен подумать, чтобы объединить результат на Python напрямую, нет в SQLALchemy ..?