вы можете использовать groupby из itertools.groupby пример
query_sets = l = [{'date': "2020-04-23 10:57:45", 'qs': 2},
{'date': "2020-04-23 10:52:45", 'qs': 3},
{'date': "2020-04-23 10:58:45", 'qs': 8},
{'date': "2020-04-23 10:57:45", 'qs': 3}]
вывод
query_sets
Out[35]:
[{'date': '2020-04-23 10:57:45', 'qs': 2},
{'date': '2020-04-23 10:52:45', 'qs': 3},
{'date': '2020-04-23 10:58:45', 'qs': 8},
{'date': '2020-04-23 10:57:45', 'qs': 3}]
как вы видите список, он не отсортирован
import itertools
def sort_and_group(iterable, key=None):
"""Group sorted `iterable` on `key`."""
return itertools.groupby(sorted(iterable, key=key), key=key)
for k, v in sort_and_group(query_sets, lambda x: x['date']): print(k, list(v))
2020-04-23 10:52:45 [{'date': '2020-04-23 10:52:45', 'qs': 3}]
2020-04-23 10:57:45 [{'date': '2020-04-23 10:57:45', 'qs': 2}, {'date': '2020-04-23 10:57:45', 'qs': 3}]
2020-04-23 10:58:45 [{'date': '2020-04-23 10:58:45', 'qs': 8}]
Я немного запутался, если это то, что вы ожидали, я надеюсь, что решение