Вы хотите itertools.groupby
.
Обратите внимание, что groupby
ожидает, что вход будет отсортирован, поэтому вам может понадобиться сделать это перед рукой:
keyfunc = lambda t: (t[0], t[1], t[3], t[4])
data.sort(key=keyfunc)
for key, rows in itertools.groupby(data, keyfunc):
print key, sum(r[2] for r in rows)
Как правило, клиенты / потребители не могут многое сделать при получении ошибок 5xx, поскольку это чисто ошибки на стороне сервера. Поэтому не должно быть частью вашей спецификации API.
Если вы думаете, основываясь на ошибке, которую выдает API, клиент / потребитель должен что-то сделать (например, повторить попытку или попробовать другой сайт или около того), тогда Да.