Уважаемое сообщество переполнения стека,
Я создал настраиваемую функцию группового режима, чтобы группировать ключи в словаре и объединять их суммированием.Функция написана так, как показано ниже:
from itertools import groupby
from operator import itemgetter
def group_by_field(data, fields):
groups = []
agg_group = itemgetter(*[item for item in fields])
sorted_data = sorted(data, key = agg_group)
for key, group in groupby(sorted_data, agg_group):
dictionary = dict(zip([item for item in fields], key))
dictionary["items"] = sum(item["items"] for item in group)
groups.append(dictionary)
return groups
Мои данные - это словарь или файл json, и они читаются, как показано ниже,
with gzip.open('data.json', 'rb') as f:
data = json.load(f)
И второй аргумент моей функции - этокортеж переменных, представленных таким образом,
('bnf_name',)
или
('bnf_name', 'post_code',)
Функция работает хорошо в обоих случаях, но когда я предоставляю только одну переменную, она уменьшает имя переменной,пожалуйста, посмотрите на приложенное изображение, чтобы увидеть результаты обоих случаев. результаты
Я хотел бы знать, почему функция ведет себя таким образом, и ждать любого предложения, которое решит мою проблему.