Flask SQL-Alchemy результат добавить в список - PullRequest
0 голосов
/ 20 сентября 2019

Я делаю запрос с 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 ..?

...