Найти наибольшую сумму значений вложенного словаря

Подскажите пожалуйста, как через цикл перебрать словарь в списке, чтобы складывались значения ключа "qty" при одинаковых значениях ключа "price". То есть если 'price': '101' = 'price': '101' другого словаря, то тогда их 'qty': '845' + 'qty': '842' + 'qty': '840' После чего нужно вывести значение ключа 'price' c наибольшей суммой значений 'qty'.

Вот сами словари в списке.

d = [{'id': 434557, 'price': '101', 'qty': '564', 'time': 1655981435709 }, 
{'id': 434558, 'price': '100', 'qty': '657', 'time': 1655981435709},
{'id': 434559, 'price': '101', 'qty': '845', 'time': 1655981435709}, 
{'id': 434560, 'price': '55', 'qty': '909', 'time': 1655981435709},
{'id': 434558, 'price': '100', 'qty': '657', 'time': 1655981435709},
{'id': 434559, 'price': '101', 'qty': '842', 'time': 1655981435709}, 
{'id': 434558, 'price': '100', 'qty': '657', 'time': 1655981435709},
{'id': 434559, 'price': '101', 'qty': '840', 'time': 1655981435709}] 

Ответы (3 шт):

Автор решения: vadim vaduxa
dt = {}
for a in d:
    try: dt[a['price']] += int(a['qty'])
    except: dt[a['price']] = int(a['qty'])

m = max(dt.values())
print([k for k in dt if dt[k] == m])
→ Ссылка
Автор решения: Stanislav Volodarskiy

Требование складывать по одной цене выглядит очень подозрительно. Несмотря на это складываем количества в словаре sums, ищем пару с максимумом суммы, печатаем эту пару:

import collections


sums = collections.defaultdict(int)
for row in d:
    sums[row['price']] += int(row['qty'])
print(*max(sums.items(), key=lambda p: p[-1]))
→ Ссылка
Автор решения: SergFSM

если список словарей очень большой, то может быть оправданным использовать библиотеку pandas. тогда вывести значение ключа 'price' c наибольшей суммой значений 'qty' можно так:

import pandas as pd

res = pd.DataFrame(d).groupby('price')['qty'].agg(lambda x: x.astype(int).sum()).idxmax()

>>> res  # '101'
→ Ссылка