尊敬的堆栈溢出社区,
我建立了一个自定义的groupby函数,以便对字典中的键进行分组并通过求和进行汇总。该函数编写如下,
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',)
该函数在两种情况下均能正常工作,但是当我仅提供一个变量时,它将减少该变量的名称。请查看所附图片以查看两种情况的结果。 results
我想知道为什么函数会以这种方式运行,并等待任何可以解决我的问题的建议。