运算符 Itemgetter 没有在字典中给出正确的组计数?
Operator Itemgetter not giving proper group count in the dictionary?
- 字典在下面
- 我需要提取
id
和 empid
的计数,基本上是组计数
res = [{'id': 'ANN6', 'empid': 'YUZP336'}, {'id': 'ANNW', 'empid': 'YUZP336'}, {'id': 'ANNW', 'empid': 'YUZP336'}, {'id': 'ANNW', 'empid': 'Y2Z2666'}, {'id': 'ANNW', 'empid': 'YUZN66N'}, {'id': 'ANNW', 'empid': 'YAZ6U96'}, {'id': 'ANNW', 'empid': 'Y26UNZA'}, {'id': 'ANNW', 'empid': 'Y2PN929'}, {'id': 'ANNW', 'empid': 'Y2PU692'}, {'id': 'AWZ2', 'empid': 'VAW6U2Z'}, {'id': 'ANNW', 'empid': 'YWU2AWW'}, {'id': 'ANNW', 'empid': 'QWWPZA2'}, {'id': 'AWZ2', 'empid': 'YUAU2A3'}, {'id': 'ANNW', 'empid': 'QWWW2AP'}, {'id': 'ANNW', 'empid': 'QWWPA93'}, {'id': 'ANNW', 'empid': 'Y2AN6A6'}, {'id': 'A6UP', 'empid': 'RBZ6N99'}, {'id': 'A6UW', 'empid': 'Y2P623A'}, {'id': 'ANNW', 'empid': 'Y22NPW6'}, {'id': 'ANNW', 'empid': 'QWWP2UP'}, {'id': 'APN6', 'empid': 'QWWZAN9'}, {'id': 'ANNW', 'empid': 'QWWA9ZN'}, {'id': 'ANNW', 'empid': 'QWWU6Z6'}, {'id': 'ANNW', 'empid': 'QWWN3AA'}, {'id': 'ANNW', 'empid': 'YWUN6UP'}, {'id': 'ANNW', 'empid': 'Y266W23'}, {'id': 'ANNW', 'empid': 'Y3W39PP'}, {'id': 'ANNW', 'empid': 'Y23NPNU'}, {'id': 'ANNW', 'empid': 'QWW23NU'}, {'id': 'ANNW', 'empid': 'YWUZ9Z3'}, {'id': 'ANNW', 'empid': 'QWW3PPU'}, {'id': 'ANNW', 'empid': 'Y292Z9P'}, {'id': 'ANNW', 'empid': 'Y2P636U'}, {'id': 'ANNW', 'empid': 'Y2N39PA'}, {'id': 'ANNW', 'empid': 'QWWA3ZP'}, {'id': 'APA9', 'empid': 'YPNNP2A'}, {'id': 'ANNW', 'empid': 'YUN66U6'}, {'id': 'ANNW', 'empid': 'QWWW22U'}, {'id': 'AN6Z', 'empid': 'QWW62UU'}, {'id': 'ANNW', 'empid': 'Y269Z9A'}, {'id': 'ANNW', 'empid': 'YA9P9W6'}, {'id': 'APPA', 'empid': 'RX96393'}, {'id': 'ANNW', 'empid': 'RMZP266'}, {'id': 'A629', 'empid': 'XHWUWP3'}, {'id': 'ANNW', 'empid': 'RZ96A96'}, {'id': 'ANNW', 'empid': 'JH9Z3PW'}, {'id': 'ANNW', 'empid': 'Y23923U'}, {'id': 'ANNW', 'empid': 'RMZUW33'}, {'id': 'ANNW', 'empid': 'YWZ3PU3'}, {'id': 'AP99', 'empid': 'RX9Z2Z9'}, {'id': 'A6UU', 'empid': 'Y3W3Z2P'}, {'id': 'ANNW', 'empid': 'Y2Z2236'}, {'id': 'ANNW', 'empid': 'Y23932N'}, {'id': 'APZW', 'empid': 'VUX3Z2U'}, {'id': 'ANNP', 'empid': 'Y2AN2U2'}, {'id': 'ANNW', 'empid': 'YW662WW'}, {'id': 'ANN2', 'empid': 'Y22NPW6'}, {'id': 'ANNW', 'empid': 'QWW6322'}, {'id': 'A62Z', 'empid': 'YU9AWZ2'}, {'id': 'ANNW', 'empid': 'Y2A6ZPU'}, {'id': 'ANNW', 'empid': 'RX9NW23'}, {'id': 'ANNW', 'empid': 'Y3W3AA9'}, {'id': 'A62N', 'empid': 'Y2PZ393'}, {'id': 'ANNW', 'empid': 'RMZ9U23'}, {'id': 'ANZW', 'empid': 'QWW9WUN'}, {'id': 'ANNW', 'empid': 'QWWUWA6'}, {'id': 'ANNW', 'empid': 'YU9AWZ2'}, {'id': 'ANNW', 'empid': 'YUW2WNW'}, {'id': 'ANNW', 'empid': 'YGWWZU2'}, {'id': 'ANNW', 'empid': 'Y266AAP'}, {'id': 'ANNW', 'empid': 'Y3WP3UA'}, {'id': 'ANNW', 'empid': 'YU9ANU2'}, {'id': 'ANNW', 'empid': 'QWWW2W3'}, {'id': 'ANNW', 'empid': 'JQ3PZNN'}, {'id': 'ANNW', 'empid': 'RM93PU3'}, {'id': 'ANNW', 'empid': 'QWUWUUN'}, {'id': 'ANNW', 'empid': 'Q2U6APA'}, {'id': 'ANNW', 'empid': 'QWW6A2U'}, {'id': 'ANNW', 'empid': 'YU3323W'}, {'id': 'A6UW', 'empid': 'Y3WU93P'}, {'id': 'A623', 'empid': 'Q2ZA9A2'}, {'id': 'ANNW', 'empid': 'YW2UZUP'}, {'id': 'ANNW', 'empid': 'Y266NNW'}, {'id': 'ANNW', 'empid': 'Y22P99U'}, {'id': 'ANNW', 'empid': 'YONWNNU'}, {'id': 'ANNW', 'empid': 'Y2NZU3U'}, {'id': 'ANNW', 'empid': 'Y2ZZ9PN'}, {'id': 'AWN6', 'empid': 'QWW3PPU'}, {'id': 'ANNW', 'empid': 'QWW62U2'}, {'id': 'ANNW', 'empid': 'YUAU2A3'}, {'id': 'APNU', 'empid': 'VPXZ9P3'}, {'id': 'ANNW', 'empid': 'QWUAWUA'}, {'id': 'APZU', 'empid': 'YUAU2A3'}, {'id': 'ANNW', 'empid': 'SIZWNU3'}, {'id': 'ANNW', 'empid': 'Y296NZP'}, {'id': 'ANNW', 'empid': 'YUNNANN'}, {'id': 'ANNW', 'empid': 'Y2ZNAZZ'}, {'id': 'ANNW', 'empid': 'QWW3NNA'}, {'id': 'ANNW', 'empid': 'Y3W3Z2P'}, {'id': 'ANNW', 'empid': 'YU966WZ'}, {'id': 'ANNW', 'empid': 'QWWUWZN'}, {'id': 'ANNW', 'empid': 'QWWW2U9'}, {'id': 'ANNW', 'empid': 'Y2Z3ZPP'}, {'id': 'ANNW', 'empid': 'YW3ZU9P'}, {'id': 'ANNW', 'empid': 'RX9Z2Z9'}, {'id': 'AWNP', 'empid': 'QWWWU9P'}, {'id': 'ANNW', 'empid': 'QWWW22W'}, {'id': 'A629', 'empid': 'YU9AWZ2'}, {'id': 'APP2', 'empid': 'Y2336W3'}, {'id': 'APNU', 'empid': 'Y3W3696'}, {'id': 'APN6', 'empid': 'Y2Z9PZZ'}, {'id': 'ANNW', 'empid': 'YU23NP6'}, {'id': 'ANNW', 'empid': 'DA366AW'}, {'id': 'ANP9', 'empid': 'QWWW22U'}, {'id': 'AP9A', 'empid': 'QWW9WUN'}, {'id': 'APN6', 'empid': 'VAWA66A'}, {'id': 'ANNW', 'empid': 'Y3WPU93'}, {'id': 'ANNW', 'empid': 'Y26P999'}, {'id': 'ANN9', 'empid': 'Y22NPW6'}, {'id': 'ANNW', 'empid': 'QWWUPA2'}, {'id': 'ANNW', 'empid': 'QWWUAUW'}, {'id': 'ANNW', 'empid': 'QWW9ZW2'}, {'id': 'ANNW', 'empid': 'Y3W292W'}, {'id': 'ANNW', 'empid': 'YUZP336'}, {'id': 'APNP', 'empid': 'Q2ZA9A2'}, {'id': 'ANNW', 'empid': 'RMZ62ZA'}, {'id': 'ANP9', 'empid': 'Y2A6ZPU'}, {'id': 'ANNW', 'empid': 'UZX2UWP'}, {'id': 'A6W2', 'empid': 'QWWW2UA'}, {'id': 'ANN6', 'empid': 'Y2336W3'}, {'id': 'ANNW', 'empid': 'APUW9A9'}, {'id': 'ANNW', 'empid': 'DA63NPN'}, {'id': 'ANNW', 'empid': 'YW9NNWW'}, {'id': 'ANNW', 'empid': 'QWW292U'}, {'id': 'ANNW', 'empid': 'V6X9ZNZ'}, {'id': 'ANN6', 'empid': 'XHWUW6Z'}, {'id': 'ANNW', 'empid': 'Y3WPZNN'}, {'id': 'ANNW', 'empid': 'RM9PZ9A'}, {'id': 'ANNW', 'empid': 'RM9NP22'}, {'id': 'ANNW', 'empid': 'RM96AA9'}, {'id': 'APN6', 'empid': 'EP96ZZ2'}, {'id': 'ANNW', 'empid': 'EP96ZZ2'}, {'id': 'ANNW', 'empid': 'QWWWU9P'}, {'id': 'APPW', 'empid': 'RM96ZWW'}, {'id': 'ANNW', 'empid': 'Y2A9AW6'}, {'id': 'ANNW', 'empid': 'QWWNPAZ'}, {'id': 'AP99', 'empid': 'Y2A6ZPU'}, {'id': 'ANNW', 'empid': 'QWW62UU'}, {'id': 'AWNZ', 'empid': 'XFW2UWW'}, {'id': 'ANNW', 'empid': 'AA92633'}, {'id': 'ANNW', 'empid': 'TYZW6PZ'}, {'id': 'ANNW', 'empid': 'XGWA326'}, {'id': 'ANNW', 'empid': 'YUZUW62'}, {'id': 'ANNW', 'empid': 'Y2NUZA3'}, {'id': 'ANNW', 'empid': 'QWW6PPU'}, {'id': 'ANNW', 'empid': 'YW2WWA3'}, {'id': 'APP3', 'empid': 'Y3W3696'}, {'id': 'ANNW', 'empid': 'RM3NZ2Z'}, {'id': 'ANNW', 'empid': 'Y29Z2NA'}, {'id': 'ANNW', 'empid': 'DA9ZU3Z'}, {'id': 'APZW', 'empid': 'YWWAPNN'}, {'id': 'ANNW', 'empid': 'Y22Z26N'}, {'id': 'AZ29', 'empid': 'Y29AP9A'}, {'id': 'AUW9', 'empid': 'Y23923U'}, {'id': 'ANNW', 'empid': 'YUZWZZ9'}, {'id': 'ANNW', 'empid': 'QWW6AUN'}, {'id': 'ANNW', 'empid': 'QWWNP3P'}, {'id': 'A6W2', 'empid': 'Y3WPZPP'}, {'id': 'ANN2', 'empid': 'Y2336W3'}, {'id': 'ANNW', 'empid': 'RM9NU3A'}, {'id': 'ANNW', 'empid': 'QWWUAU2'}, {'id': 'ANNW', 'empid': 'Y22AAW2'}, {'id': 'ANNW', 'empid': 'Y2APWP6'}, {'id': 'ANNW', 'empid': 'Y22N2P6'}, {'id': 'ANNW', 'empid': 'Y3WP396'}, {'id': 'AN6Z', 'empid': 'Y266AAP'}, {'id': 'ANNW', 'empid': 'YUZP336'}, {'id': 'ANNW', 'empid': 'YUZP336'}, {'id': 'ANNW', 'empid': 'YUZP336'}]
代码如下
from operator import itemgetter
from itertools import groupby
from collections import OrderedDict
grouper = itemgetter('id', 'empid')
for i, v in groupby(res, key=grouper):
print(f"The count {dict(id=i[0], empid=i[1])} : {len(list(v))}")
我的输出没有给出正确的输出
{'id': 'ANNW', 'empid': 'YUZP336'}
上面的计数实际上是 12,但我得到了它的 3 次重复
The count {'id': 'ANNW', 'empid': 'YUZP336'} : 2
The count {'id': 'ANNW', 'empid': 'YUZP336'} : 1
The count {'id': 'ANNW', 'empid': 'YUZP336'} : 3
像上面一样我需要提取所有的id和empid
The count {'id': 'ANNW', 'empid': 'YUZP336'} : 12
The count {'id': 'ANNW', 'empid': 'QWW3NNA'} : 1
The count {'id': 'ANNW', 'empid': 'EP96ZZ2'} : 1
The count {'id': 'APN6', 'empid': 'EP96ZZ2'} : 1
.........
...........
我建议为此使用 Pandas:
df=pd.DataFrame(res)
gr = df.groupby(['id', 'empid']).size()
gr=gr.reset_index()
for i in gr.index:
print(f"The count {dict(id=gr.loc[i, 'id'], empid=gr.loc[i, 'empid'])} : {gr.loc[i, 0]}")
输出:
The count {'id': 'A623', 'empid': 'Q2ZA9A2'} : 1
The count {'id': 'A629', 'empid': 'XHWUWP3'} : 1
The count {'id': 'A629', 'empid': 'YU9AWZ2'} : 1
The count {'id': 'A62N', 'empid': 'Y2PZ393'} : 1
The count {'id': 'A62Z', 'empid': 'YU9AWZ2'} : 1
The count {'id': 'A6UP', 'empid': 'RBZ6N99'} : 1
The count {'id': 'A6UU', 'empid': 'Y3W3Z2P'} : 1
The count {'id': 'A6UW', 'empid': 'Y2P623A'} : 1
The count {'id': 'A6UW', 'empid': 'Y3WU93P'} : 1
The count {'id': 'A6W2', 'empid': 'QWWW2UA'} : 1
The count {'id': 'A6W2', 'empid': 'Y3WPZPP'} : 1
The count {'id': 'AN6Z', 'empid': 'QWW62UU'} : 1
The count {'id': 'AN6Z', 'empid': 'Y266AAP'} : 1
The count {'id': 'ANN2', 'empid': 'Y22NPW6'} : 1
The count {'id': 'ANN2', 'empid': 'Y2336W3'} : 1
The count {'id': 'ANN6', 'empid': 'XHWUW6Z'} : 1
The count {'id': 'ANN6', 'empid': 'Y2336W3'} : 1
The count {'id': 'ANN6', 'empid': 'YUZP336'} : 1
The count {'id': 'ANN9', 'empid': 'Y22NPW6'} : 1
The count {'id': 'ANNP', 'empid': 'Y2AN2U2'} : 1
The count {'id': 'ANNW', 'empid': 'AA92633'} : 1
The count {'id': 'ANNW', 'empid': 'APUW9A9'} : 1
The count {'id': 'ANNW', 'empid': 'DA366AW'} : 1
The count {'id': 'ANNW', 'empid': 'DA63NPN'} : 1
The count {'id': 'ANNW', 'empid': 'DA9ZU3Z'} : 1
The count {'id': 'ANNW', 'empid': 'EP96ZZ2'} : 1
The count {'id': 'ANNW', 'empid': 'JH9Z3PW'} : 1
The count {'id': 'ANNW', 'empid': 'JQ3PZNN'} : 1
The count {'id': 'ANNW', 'empid': 'Q2U6APA'} : 1
The count {'id': 'ANNW', 'empid': 'QWUAWUA'} : 1
The count {'id': 'ANNW', 'empid': 'QWUWUUN'} : 1
The count {'id': 'ANNW', 'empid': 'QWW23NU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW292U'} : 1
The count {'id': 'ANNW', 'empid': 'QWW3NNA'} : 1
The count {'id': 'ANNW', 'empid': 'QWW3PPU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW62U2'} : 1
The count {'id': 'ANNW', 'empid': 'QWW62UU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6322'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6A2U'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6AUN'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6PPU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW9ZW2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWA3ZP'} : 1
The count {'id': 'ANNW', 'empid': 'QWWA9ZN'} : 1
The count {'id': 'ANNW', 'empid': 'QWWN3AA'} : 1
The count {'id': 'ANNW', 'empid': 'QWWNP3P'} : 1
The count {'id': 'ANNW', 'empid': 'QWWNPAZ'} : 1
The count {'id': 'ANNW', 'empid': 'QWWP2UP'} : 1
The count {'id': 'ANNW', 'empid': 'QWWPA93'} : 1
The count {'id': 'ANNW', 'empid': 'QWWPZA2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWU6Z6'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUAU2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUAUW'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUPA2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUWA6'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUWZN'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW22U'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW22W'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW2AP'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW2U9'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW2W3'} : 1
The count {'id': 'ANNW', 'empid': 'QWWWU9P'} : 1
The count {'id': 'ANNW', 'empid': 'RM3NZ2Z'} : 1
The count {'id': 'ANNW', 'empid': 'RM93PU3'} : 1
The count {'id': 'ANNW', 'empid': 'RM96AA9'} : 1
The count {'id': 'ANNW', 'empid': 'RM9NP22'} : 1
The count {'id': 'ANNW', 'empid': 'RM9NU3A'} : 1
The count {'id': 'ANNW', 'empid': 'RM9PZ9A'} : 1
The count {'id': 'ANNW', 'empid': 'RMZ62ZA'} : 1
The count {'id': 'ANNW', 'empid': 'RMZ9U23'} : 1
The count {'id': 'ANNW', 'empid': 'RMZP266'} : 1
The count {'id': 'ANNW', 'empid': 'RMZUW33'} : 1
The count {'id': 'ANNW', 'empid': 'RX9NW23'} : 1
The count {'id': 'ANNW', 'empid': 'RX9Z2Z9'} : 1
The count {'id': 'ANNW', 'empid': 'RZ96A96'} : 1
The count {'id': 'ANNW', 'empid': 'SIZWNU3'} : 1
The count {'id': 'ANNW', 'empid': 'TYZW6PZ'} : 1
The count {'id': 'ANNW', 'empid': 'UZX2UWP'} : 1
The count {'id': 'ANNW', 'empid': 'V6X9ZNZ'} : 1
The count {'id': 'ANNW', 'empid': 'XGWA326'} : 1
The count {'id': 'ANNW', 'empid': 'Y22AAW2'} : 1
The count {'id': 'ANNW', 'empid': 'Y22N2P6'} : 1
The count {'id': 'ANNW', 'empid': 'Y22NPW6'} : 1
The count {'id': 'ANNW', 'empid': 'Y22P99U'} : 1
The count {'id': 'ANNW', 'empid': 'Y22Z26N'} : 1
The count {'id': 'ANNW', 'empid': 'Y23923U'} : 1
The count {'id': 'ANNW', 'empid': 'Y23932N'} : 1
The count {'id': 'ANNW', 'empid': 'Y23NPNU'} : 1
The count {'id': 'ANNW', 'empid': 'Y266AAP'} : 1
The count {'id': 'ANNW', 'empid': 'Y266NNW'} : 1
The count {'id': 'ANNW', 'empid': 'Y266W23'} : 1
The count {'id': 'ANNW', 'empid': 'Y269Z9A'} : 1
The count {'id': 'ANNW', 'empid': 'Y26P999'} : 1
The count {'id': 'ANNW', 'empid': 'Y26UNZA'} : 1
The count {'id': 'ANNW', 'empid': 'Y292Z9P'} : 1
The count {'id': 'ANNW', 'empid': 'Y296NZP'} : 1
The count {'id': 'ANNW', 'empid': 'Y29Z2NA'} : 1
The count {'id': 'ANNW', 'empid': 'Y2A6ZPU'} : 1
The count {'id': 'ANNW', 'empid': 'Y2A9AW6'} : 1
The count {'id': 'ANNW', 'empid': 'Y2AN6A6'} : 1
The count {'id': 'ANNW', 'empid': 'Y2APWP6'} : 1
The count {'id': 'ANNW', 'empid': 'Y2N39PA'} : 1
The count {'id': 'ANNW', 'empid': 'Y2NUZA3'} : 1
The count {'id': 'ANNW', 'empid': 'Y2NZU3U'} : 1
The count {'id': 'ANNW', 'empid': 'Y2P636U'} : 1
The count {'id': 'ANNW', 'empid': 'Y2PN929'} : 1
The count {'id': 'ANNW', 'empid': 'Y2PU692'} : 1
The count {'id': 'ANNW', 'empid': 'Y2Z2236'} : 1
The count {'id': 'ANNW', 'empid': 'Y2Z2666'} : 1
The count {'id': 'ANNW', 'empid': 'Y2Z3ZPP'} : 1
The count {'id': 'ANNW', 'empid': 'Y2ZNAZZ'} : 1
The count {'id': 'ANNW', 'empid': 'Y2ZZ9PN'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W292W'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W39PP'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W3AA9'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W3Z2P'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WP396'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WP3UA'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WPU93'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WPZNN'} : 1
The count {'id': 'ANNW', 'empid': 'YA9P9W6'} : 1
The count {'id': 'ANNW', 'empid': 'YAZ6U96'} : 1
The count {'id': 'ANNW', 'empid': 'YGWWZU2'} : 1
The count {'id': 'ANNW', 'empid': 'YONWNNU'} : 1
The count {'id': 'ANNW', 'empid': 'YU23NP6'} : 1
The count {'id': 'ANNW', 'empid': 'YU3323W'} : 1
The count {'id': 'ANNW', 'empid': 'YU966WZ'} : 1
The count {'id': 'ANNW', 'empid': 'YU9ANU2'} : 1
The count {'id': 'ANNW', 'empid': 'YU9AWZ2'} : 1
The count {'id': 'ANNW', 'empid': 'YUAU2A3'} : 1
The count {'id': 'ANNW', 'empid': 'YUN66U6'} : 1
The count {'id': 'ANNW', 'empid': 'YUNNANN'} : 1
The count {'id': 'ANNW', 'empid': 'YUW2WNW'} : 1
The count {'id': 'ANNW', 'empid': 'YUZN66N'} : 1
The count {'id': 'ANNW', 'empid': 'YUZP336'} : 6
The count {'id': 'ANNW', 'empid': 'YUZUW62'} : 1
The count {'id': 'ANNW', 'empid': 'YUZWZZ9'} : 1
The count {'id': 'ANNW', 'empid': 'YW2UZUP'} : 1
The count {'id': 'ANNW', 'empid': 'YW2WWA3'} : 1
The count {'id': 'ANNW', 'empid': 'YW3ZU9P'} : 1
The count {'id': 'ANNW', 'empid': 'YW662WW'} : 1
The count {'id': 'ANNW', 'empid': 'YW9NNWW'} : 1
The count {'id': 'ANNW', 'empid': 'YWU2AWW'} : 1
The count {'id': 'ANNW', 'empid': 'YWUN6UP'} : 1
The count {'id': 'ANNW', 'empid': 'YWUZ9Z3'} : 1
The count {'id': 'ANNW', 'empid': 'YWZ3PU3'} : 1
The count {'id': 'ANP9', 'empid': 'QWWW22U'} : 1
The count {'id': 'ANP9', 'empid': 'Y2A6ZPU'} : 1
The count {'id': 'ANZW', 'empid': 'QWW9WUN'} : 1
The count {'id': 'AP99', 'empid': 'RX9Z2Z9'} : 1
The count {'id': 'AP99', 'empid': 'Y2A6ZPU'} : 1
The count {'id': 'AP9A', 'empid': 'QWW9WUN'} : 1
The count {'id': 'APA9', 'empid': 'YPNNP2A'} : 1
The count {'id': 'APN6', 'empid': 'EP96ZZ2'} : 1
The count {'id': 'APN6', 'empid': 'QWWZAN9'} : 1
The count {'id': 'APN6', 'empid': 'VAWA66A'} : 1
The count {'id': 'APN6', 'empid': 'Y2Z9PZZ'} : 1
The count {'id': 'APNP', 'empid': 'Q2ZA9A2'} : 1
The count {'id': 'APNU', 'empid': 'VPXZ9P3'} : 1
The count {'id': 'APNU', 'empid': 'Y3W3696'} : 1
The count {'id': 'APP2', 'empid': 'Y2336W3'} : 1
The count {'id': 'APP3', 'empid': 'Y3W3696'} : 1
The count {'id': 'APPA', 'empid': 'RX96393'} : 1
The count {'id': 'APPW', 'empid': 'RM96ZWW'} : 1
The count {'id': 'APZU', 'empid': 'YUAU2A3'} : 1
The count {'id': 'APZW', 'empid': 'VUX3Z2U'} : 1
The count {'id': 'APZW', 'empid': 'YWWAPNN'} : 1
The count {'id': 'AUW9', 'empid': 'Y23923U'} : 1
The count {'id': 'AWN6', 'empid': 'QWW3PPU'} : 1
The count {'id': 'AWNP', 'empid': 'QWWWU9P'} : 1
The count {'id': 'AWNZ', 'empid': 'XFW2UWW'} : 1
The count {'id': 'AWZ2', 'empid': 'VAW6U2Z'} : 1
The count {'id': 'AWZ2', 'empid': 'YUAU2A3'} : 1
The count {'id': 'AZ29', 'empid': 'Y29AP9A'} : 1
要itertools.groupby
按预期工作,您需要先对数据进行排序。所以尝试在 groupby
:
中传递 sorted(res, key=grouper)
而不是 res
sorted_res = sorted(res, key=grouper)
# also using argument unpacking in the `for` statement
for (id_, empid), gr in groupby(sorted_res, key=grouper):
print(f"The count {dict(id=id_, empid=empid)} : {len(list(gr))}")
这给出了
The count {'id': 'A623', 'empid': 'Q2ZA9A2'} : 1
The count {'id': 'A629', 'empid': 'XHWUWP3'} : 1
The count {'id': 'A629', 'empid': 'YU9AWZ2'} : 1
The count {'id': 'A62N', 'empid': 'Y2PZ393'} : 1
The count {'id': 'A62Z', 'empid': 'YU9AWZ2'} : 1
The count {'id': 'A6UP', 'empid': 'RBZ6N99'} : 1
The count {'id': 'A6UU', 'empid': 'Y3W3Z2P'} : 1
The count {'id': 'A6UW', 'empid': 'Y2P623A'} : 1
The count {'id': 'A6UW', 'empid': 'Y3WU93P'} : 1
The count {'id': 'A6W2', 'empid': 'QWWW2UA'} : 1
The count {'id': 'A6W2', 'empid': 'Y3WPZPP'} : 1
The count {'id': 'AN6Z', 'empid': 'QWW62UU'} : 1
The count {'id': 'AN6Z', 'empid': 'Y266AAP'} : 1
The count {'id': 'ANN2', 'empid': 'Y22NPW6'} : 1
The count {'id': 'ANN2', 'empid': 'Y2336W3'} : 1
The count {'id': 'ANN6', 'empid': 'XHWUW6Z'} : 1
The count {'id': 'ANN6', 'empid': 'Y2336W3'} : 1
The count {'id': 'ANN6', 'empid': 'YUZP336'} : 1
The count {'id': 'ANN9', 'empid': 'Y22NPW6'} : 1
The count {'id': 'ANNP', 'empid': 'Y2AN2U2'} : 1
The count {'id': 'ANNW', 'empid': 'AA92633'} : 1
The count {'id': 'ANNW', 'empid': 'APUW9A9'} : 1
The count {'id': 'ANNW', 'empid': 'DA366AW'} : 1
The count {'id': 'ANNW', 'empid': 'DA63NPN'} : 1
The count {'id': 'ANNW', 'empid': 'DA9ZU3Z'} : 1
The count {'id': 'ANNW', 'empid': 'EP96ZZ2'} : 1
The count {'id': 'ANNW', 'empid': 'JH9Z3PW'} : 1
The count {'id': 'ANNW', 'empid': 'JQ3PZNN'} : 1
The count {'id': 'ANNW', 'empid': 'Q2U6APA'} : 1
The count {'id': 'ANNW', 'empid': 'QWUAWUA'} : 1
The count {'id': 'ANNW', 'empid': 'QWUWUUN'} : 1
The count {'id': 'ANNW', 'empid': 'QWW23NU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW292U'} : 1
The count {'id': 'ANNW', 'empid': 'QWW3NNA'} : 1
The count {'id': 'ANNW', 'empid': 'QWW3PPU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW62U2'} : 1
The count {'id': 'ANNW', 'empid': 'QWW62UU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6322'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6A2U'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6AUN'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6PPU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW9ZW2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWA3ZP'} : 1
The count {'id': 'ANNW', 'empid': 'QWWA9ZN'} : 1
The count {'id': 'ANNW', 'empid': 'QWWN3AA'} : 1
The count {'id': 'ANNW', 'empid': 'QWWNP3P'} : 1
The count {'id': 'ANNW', 'empid': 'QWWNPAZ'} : 1
The count {'id': 'ANNW', 'empid': 'QWWP2UP'} : 1
The count {'id': 'ANNW', 'empid': 'QWWPA93'} : 1
The count {'id': 'ANNW', 'empid': 'QWWPZA2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWU6Z6'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUAU2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUAUW'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUPA2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUWA6'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUWZN'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW22U'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW22W'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW2AP'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW2U9'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW2W3'} : 1
The count {'id': 'ANNW', 'empid': 'QWWWU9P'} : 1
The count {'id': 'ANNW', 'empid': 'RM3NZ2Z'} : 1
The count {'id': 'ANNW', 'empid': 'RM93PU3'} : 1
The count {'id': 'ANNW', 'empid': 'RM96AA9'} : 1
The count {'id': 'ANNW', 'empid': 'RM9NP22'} : 1
The count {'id': 'ANNW', 'empid': 'RM9NU3A'} : 1
The count {'id': 'ANNW', 'empid': 'RM9PZ9A'} : 1
The count {'id': 'ANNW', 'empid': 'RMZ62ZA'} : 1
The count {'id': 'ANNW', 'empid': 'RMZ9U23'} : 1
The count {'id': 'ANNW', 'empid': 'RMZP266'} : 1
The count {'id': 'ANNW', 'empid': 'RMZUW33'} : 1
The count {'id': 'ANNW', 'empid': 'RX9NW23'} : 1
The count {'id': 'ANNW', 'empid': 'RX9Z2Z9'} : 1
The count {'id': 'ANNW', 'empid': 'RZ96A96'} : 1
The count {'id': 'ANNW', 'empid': 'SIZWNU3'} : 1
The count {'id': 'ANNW', 'empid': 'TYZW6PZ'} : 1
The count {'id': 'ANNW', 'empid': 'UZX2UWP'} : 1
The count {'id': 'ANNW', 'empid': 'V6X9ZNZ'} : 1
The count {'id': 'ANNW', 'empid': 'XGWA326'} : 1
The count {'id': 'ANNW', 'empid': 'Y22AAW2'} : 1
The count {'id': 'ANNW', 'empid': 'Y22N2P6'} : 1
The count {'id': 'ANNW', 'empid': 'Y22NPW6'} : 1
The count {'id': 'ANNW', 'empid': 'Y22P99U'} : 1
The count {'id': 'ANNW', 'empid': 'Y22Z26N'} : 1
The count {'id': 'ANNW', 'empid': 'Y23923U'} : 1
The count {'id': 'ANNW', 'empid': 'Y23932N'} : 1
The count {'id': 'ANNW', 'empid': 'Y23NPNU'} : 1
The count {'id': 'ANNW', 'empid': 'Y266AAP'} : 1
The count {'id': 'ANNW', 'empid': 'Y266NNW'} : 1
The count {'id': 'ANNW', 'empid': 'Y266W23'} : 1
The count {'id': 'ANNW', 'empid': 'Y269Z9A'} : 1
The count {'id': 'ANNW', 'empid': 'Y26P999'} : 1
The count {'id': 'ANNW', 'empid': 'Y26UNZA'} : 1
The count {'id': 'ANNW', 'empid': 'Y292Z9P'} : 1
The count {'id': 'ANNW', 'empid': 'Y296NZP'} : 1
The count {'id': 'ANNW', 'empid': 'Y29Z2NA'} : 1
The count {'id': 'ANNW', 'empid': 'Y2A6ZPU'} : 1
The count {'id': 'ANNW', 'empid': 'Y2A9AW6'} : 1
The count {'id': 'ANNW', 'empid': 'Y2AN6A6'} : 1
The count {'id': 'ANNW', 'empid': 'Y2APWP6'} : 1
The count {'id': 'ANNW', 'empid': 'Y2N39PA'} : 1
The count {'id': 'ANNW', 'empid': 'Y2NUZA3'} : 1
The count {'id': 'ANNW', 'empid': 'Y2NZU3U'} : 1
The count {'id': 'ANNW', 'empid': 'Y2P636U'} : 1
The count {'id': 'ANNW', 'empid': 'Y2PN929'} : 1
The count {'id': 'ANNW', 'empid': 'Y2PU692'} : 1
The count {'id': 'ANNW', 'empid': 'Y2Z2236'} : 1
The count {'id': 'ANNW', 'empid': 'Y2Z2666'} : 1
The count {'id': 'ANNW', 'empid': 'Y2Z3ZPP'} : 1
The count {'id': 'ANNW', 'empid': 'Y2ZNAZZ'} : 1
The count {'id': 'ANNW', 'empid': 'Y2ZZ9PN'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W292W'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W39PP'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W3AA9'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W3Z2P'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WP396'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WP3UA'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WPU93'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WPZNN'} : 1
The count {'id': 'ANNW', 'empid': 'YA9P9W6'} : 1
The count {'id': 'ANNW', 'empid': 'YAZ6U96'} : 1
The count {'id': 'ANNW', 'empid': 'YGWWZU2'} : 1
The count {'id': 'ANNW', 'empid': 'YONWNNU'} : 1
The count {'id': 'ANNW', 'empid': 'YU23NP6'} : 1
The count {'id': 'ANNW', 'empid': 'YU3323W'} : 1
The count {'id': 'ANNW', 'empid': 'YU966WZ'} : 1
The count {'id': 'ANNW', 'empid': 'YU9ANU2'} : 1
The count {'id': 'ANNW', 'empid': 'YU9AWZ2'} : 1
The count {'id': 'ANNW', 'empid': 'YUAU2A3'} : 1
The count {'id': 'ANNW', 'empid': 'YUN66U6'} : 1
The count {'id': 'ANNW', 'empid': 'YUNNANN'} : 1
The count {'id': 'ANNW', 'empid': 'YUW2WNW'} : 1
The count {'id': 'ANNW', 'empid': 'YUZN66N'} : 1
The count {'id': 'ANNW', 'empid': 'YUZP336'} : 6
The count {'id': 'ANNW', 'empid': 'YUZUW62'} : 1
The count {'id': 'ANNW', 'empid': 'YUZWZZ9'} : 1
The count {'id': 'ANNW', 'empid': 'YW2UZUP'} : 1
The count {'id': 'ANNW', 'empid': 'YW2WWA3'} : 1
The count {'id': 'ANNW', 'empid': 'YW3ZU9P'} : 1
The count {'id': 'ANNW', 'empid': 'YW662WW'} : 1
The count {'id': 'ANNW', 'empid': 'YW9NNWW'} : 1
The count {'id': 'ANNW', 'empid': 'YWU2AWW'} : 1
The count {'id': 'ANNW', 'empid': 'YWUN6UP'} : 1
The count {'id': 'ANNW', 'empid': 'YWUZ9Z3'} : 1
The count {'id': 'ANNW', 'empid': 'YWZ3PU3'} : 1
The count {'id': 'ANP9', 'empid': 'QWWW22U'} : 1
The count {'id': 'ANP9', 'empid': 'Y2A6ZPU'} : 1
The count {'id': 'ANZW', 'empid': 'QWW9WUN'} : 1
The count {'id': 'AP99', 'empid': 'RX9Z2Z9'} : 1
The count {'id': 'AP99', 'empid': 'Y2A6ZPU'} : 1
The count {'id': 'AP9A', 'empid': 'QWW9WUN'} : 1
The count {'id': 'APA9', 'empid': 'YPNNP2A'} : 1
The count {'id': 'APN6', 'empid': 'EP96ZZ2'} : 1
The count {'id': 'APN6', 'empid': 'QWWZAN9'} : 1
The count {'id': 'APN6', 'empid': 'VAWA66A'} : 1
The count {'id': 'APN6', 'empid': 'Y2Z9PZZ'} : 1
The count {'id': 'APNP', 'empid': 'Q2ZA9A2'} : 1
The count {'id': 'APNU', 'empid': 'VPXZ9P3'} : 1
The count {'id': 'APNU', 'empid': 'Y3W3696'} : 1
The count {'id': 'APP2', 'empid': 'Y2336W3'} : 1
The count {'id': 'APP3', 'empid': 'Y3W3696'} : 1
The count {'id': 'APPA', 'empid': 'RX96393'} : 1
The count {'id': 'APPW', 'empid': 'RM96ZWW'} : 1
The count {'id': 'APZU', 'empid': 'YUAU2A3'} : 1
The count {'id': 'APZW', 'empid': 'VUX3Z2U'} : 1
The count {'id': 'APZW', 'empid': 'YWWAPNN'} : 1
The count {'id': 'AUW9', 'empid': 'Y23923U'} : 1
The count {'id': 'AWN6', 'empid': 'QWW3PPU'} : 1
The count {'id': 'AWNP', 'empid': 'QWWWU9P'} : 1
The count {'id': 'AWNZ', 'empid': 'XFW2UWW'} : 1
The count {'id': 'AWZ2', 'empid': 'VAW6U2Z'} : 1
The count {'id': 'AWZ2', 'empid': 'YUAU2A3'} : 1
The count {'id': 'AZ29', 'empid': 'Y29AP9A'} : 1
collections.Counter
的替代方案:
>>> from operator import itemgetter
>>> from collections import Counter
>>> Counter(map(itemgetter('id', 'empid'), res))
Counter({('ANN6', 'YUZP336'): 1,
('ANNW', 'YUZP336'): 6,
('ANNW', 'Y2Z2666'): 1,
('ANNW', 'YUZN66N'): 1,
('ANNW', 'YAZ6U96'): 1,
('ANNW', 'Y26UNZA'): 1,
...
- 字典在下面
- 我需要提取
id
和empid
的计数,基本上是组计数
res = [{'id': 'ANN6', 'empid': 'YUZP336'}, {'id': 'ANNW', 'empid': 'YUZP336'}, {'id': 'ANNW', 'empid': 'YUZP336'}, {'id': 'ANNW', 'empid': 'Y2Z2666'}, {'id': 'ANNW', 'empid': 'YUZN66N'}, {'id': 'ANNW', 'empid': 'YAZ6U96'}, {'id': 'ANNW', 'empid': 'Y26UNZA'}, {'id': 'ANNW', 'empid': 'Y2PN929'}, {'id': 'ANNW', 'empid': 'Y2PU692'}, {'id': 'AWZ2', 'empid': 'VAW6U2Z'}, {'id': 'ANNW', 'empid': 'YWU2AWW'}, {'id': 'ANNW', 'empid': 'QWWPZA2'}, {'id': 'AWZ2', 'empid': 'YUAU2A3'}, {'id': 'ANNW', 'empid': 'QWWW2AP'}, {'id': 'ANNW', 'empid': 'QWWPA93'}, {'id': 'ANNW', 'empid': 'Y2AN6A6'}, {'id': 'A6UP', 'empid': 'RBZ6N99'}, {'id': 'A6UW', 'empid': 'Y2P623A'}, {'id': 'ANNW', 'empid': 'Y22NPW6'}, {'id': 'ANNW', 'empid': 'QWWP2UP'}, {'id': 'APN6', 'empid': 'QWWZAN9'}, {'id': 'ANNW', 'empid': 'QWWA9ZN'}, {'id': 'ANNW', 'empid': 'QWWU6Z6'}, {'id': 'ANNW', 'empid': 'QWWN3AA'}, {'id': 'ANNW', 'empid': 'YWUN6UP'}, {'id': 'ANNW', 'empid': 'Y266W23'}, {'id': 'ANNW', 'empid': 'Y3W39PP'}, {'id': 'ANNW', 'empid': 'Y23NPNU'}, {'id': 'ANNW', 'empid': 'QWW23NU'}, {'id': 'ANNW', 'empid': 'YWUZ9Z3'}, {'id': 'ANNW', 'empid': 'QWW3PPU'}, {'id': 'ANNW', 'empid': 'Y292Z9P'}, {'id': 'ANNW', 'empid': 'Y2P636U'}, {'id': 'ANNW', 'empid': 'Y2N39PA'}, {'id': 'ANNW', 'empid': 'QWWA3ZP'}, {'id': 'APA9', 'empid': 'YPNNP2A'}, {'id': 'ANNW', 'empid': 'YUN66U6'}, {'id': 'ANNW', 'empid': 'QWWW22U'}, {'id': 'AN6Z', 'empid': 'QWW62UU'}, {'id': 'ANNW', 'empid': 'Y269Z9A'}, {'id': 'ANNW', 'empid': 'YA9P9W6'}, {'id': 'APPA', 'empid': 'RX96393'}, {'id': 'ANNW', 'empid': 'RMZP266'}, {'id': 'A629', 'empid': 'XHWUWP3'}, {'id': 'ANNW', 'empid': 'RZ96A96'}, {'id': 'ANNW', 'empid': 'JH9Z3PW'}, {'id': 'ANNW', 'empid': 'Y23923U'}, {'id': 'ANNW', 'empid': 'RMZUW33'}, {'id': 'ANNW', 'empid': 'YWZ3PU3'}, {'id': 'AP99', 'empid': 'RX9Z2Z9'}, {'id': 'A6UU', 'empid': 'Y3W3Z2P'}, {'id': 'ANNW', 'empid': 'Y2Z2236'}, {'id': 'ANNW', 'empid': 'Y23932N'}, {'id': 'APZW', 'empid': 'VUX3Z2U'}, {'id': 'ANNP', 'empid': 'Y2AN2U2'}, {'id': 'ANNW', 'empid': 'YW662WW'}, {'id': 'ANN2', 'empid': 'Y22NPW6'}, {'id': 'ANNW', 'empid': 'QWW6322'}, {'id': 'A62Z', 'empid': 'YU9AWZ2'}, {'id': 'ANNW', 'empid': 'Y2A6ZPU'}, {'id': 'ANNW', 'empid': 'RX9NW23'}, {'id': 'ANNW', 'empid': 'Y3W3AA9'}, {'id': 'A62N', 'empid': 'Y2PZ393'}, {'id': 'ANNW', 'empid': 'RMZ9U23'}, {'id': 'ANZW', 'empid': 'QWW9WUN'}, {'id': 'ANNW', 'empid': 'QWWUWA6'}, {'id': 'ANNW', 'empid': 'YU9AWZ2'}, {'id': 'ANNW', 'empid': 'YUW2WNW'}, {'id': 'ANNW', 'empid': 'YGWWZU2'}, {'id': 'ANNW', 'empid': 'Y266AAP'}, {'id': 'ANNW', 'empid': 'Y3WP3UA'}, {'id': 'ANNW', 'empid': 'YU9ANU2'}, {'id': 'ANNW', 'empid': 'QWWW2W3'}, {'id': 'ANNW', 'empid': 'JQ3PZNN'}, {'id': 'ANNW', 'empid': 'RM93PU3'}, {'id': 'ANNW', 'empid': 'QWUWUUN'}, {'id': 'ANNW', 'empid': 'Q2U6APA'}, {'id': 'ANNW', 'empid': 'QWW6A2U'}, {'id': 'ANNW', 'empid': 'YU3323W'}, {'id': 'A6UW', 'empid': 'Y3WU93P'}, {'id': 'A623', 'empid': 'Q2ZA9A2'}, {'id': 'ANNW', 'empid': 'YW2UZUP'}, {'id': 'ANNW', 'empid': 'Y266NNW'}, {'id': 'ANNW', 'empid': 'Y22P99U'}, {'id': 'ANNW', 'empid': 'YONWNNU'}, {'id': 'ANNW', 'empid': 'Y2NZU3U'}, {'id': 'ANNW', 'empid': 'Y2ZZ9PN'}, {'id': 'AWN6', 'empid': 'QWW3PPU'}, {'id': 'ANNW', 'empid': 'QWW62U2'}, {'id': 'ANNW', 'empid': 'YUAU2A3'}, {'id': 'APNU', 'empid': 'VPXZ9P3'}, {'id': 'ANNW', 'empid': 'QWUAWUA'}, {'id': 'APZU', 'empid': 'YUAU2A3'}, {'id': 'ANNW', 'empid': 'SIZWNU3'}, {'id': 'ANNW', 'empid': 'Y296NZP'}, {'id': 'ANNW', 'empid': 'YUNNANN'}, {'id': 'ANNW', 'empid': 'Y2ZNAZZ'}, {'id': 'ANNW', 'empid': 'QWW3NNA'}, {'id': 'ANNW', 'empid': 'Y3W3Z2P'}, {'id': 'ANNW', 'empid': 'YU966WZ'}, {'id': 'ANNW', 'empid': 'QWWUWZN'}, {'id': 'ANNW', 'empid': 'QWWW2U9'}, {'id': 'ANNW', 'empid': 'Y2Z3ZPP'}, {'id': 'ANNW', 'empid': 'YW3ZU9P'}, {'id': 'ANNW', 'empid': 'RX9Z2Z9'}, {'id': 'AWNP', 'empid': 'QWWWU9P'}, {'id': 'ANNW', 'empid': 'QWWW22W'}, {'id': 'A629', 'empid': 'YU9AWZ2'}, {'id': 'APP2', 'empid': 'Y2336W3'}, {'id': 'APNU', 'empid': 'Y3W3696'}, {'id': 'APN6', 'empid': 'Y2Z9PZZ'}, {'id': 'ANNW', 'empid': 'YU23NP6'}, {'id': 'ANNW', 'empid': 'DA366AW'}, {'id': 'ANP9', 'empid': 'QWWW22U'}, {'id': 'AP9A', 'empid': 'QWW9WUN'}, {'id': 'APN6', 'empid': 'VAWA66A'}, {'id': 'ANNW', 'empid': 'Y3WPU93'}, {'id': 'ANNW', 'empid': 'Y26P999'}, {'id': 'ANN9', 'empid': 'Y22NPW6'}, {'id': 'ANNW', 'empid': 'QWWUPA2'}, {'id': 'ANNW', 'empid': 'QWWUAUW'}, {'id': 'ANNW', 'empid': 'QWW9ZW2'}, {'id': 'ANNW', 'empid': 'Y3W292W'}, {'id': 'ANNW', 'empid': 'YUZP336'}, {'id': 'APNP', 'empid': 'Q2ZA9A2'}, {'id': 'ANNW', 'empid': 'RMZ62ZA'}, {'id': 'ANP9', 'empid': 'Y2A6ZPU'}, {'id': 'ANNW', 'empid': 'UZX2UWP'}, {'id': 'A6W2', 'empid': 'QWWW2UA'}, {'id': 'ANN6', 'empid': 'Y2336W3'}, {'id': 'ANNW', 'empid': 'APUW9A9'}, {'id': 'ANNW', 'empid': 'DA63NPN'}, {'id': 'ANNW', 'empid': 'YW9NNWW'}, {'id': 'ANNW', 'empid': 'QWW292U'}, {'id': 'ANNW', 'empid': 'V6X9ZNZ'}, {'id': 'ANN6', 'empid': 'XHWUW6Z'}, {'id': 'ANNW', 'empid': 'Y3WPZNN'}, {'id': 'ANNW', 'empid': 'RM9PZ9A'}, {'id': 'ANNW', 'empid': 'RM9NP22'}, {'id': 'ANNW', 'empid': 'RM96AA9'}, {'id': 'APN6', 'empid': 'EP96ZZ2'}, {'id': 'ANNW', 'empid': 'EP96ZZ2'}, {'id': 'ANNW', 'empid': 'QWWWU9P'}, {'id': 'APPW', 'empid': 'RM96ZWW'}, {'id': 'ANNW', 'empid': 'Y2A9AW6'}, {'id': 'ANNW', 'empid': 'QWWNPAZ'}, {'id': 'AP99', 'empid': 'Y2A6ZPU'}, {'id': 'ANNW', 'empid': 'QWW62UU'}, {'id': 'AWNZ', 'empid': 'XFW2UWW'}, {'id': 'ANNW', 'empid': 'AA92633'}, {'id': 'ANNW', 'empid': 'TYZW6PZ'}, {'id': 'ANNW', 'empid': 'XGWA326'}, {'id': 'ANNW', 'empid': 'YUZUW62'}, {'id': 'ANNW', 'empid': 'Y2NUZA3'}, {'id': 'ANNW', 'empid': 'QWW6PPU'}, {'id': 'ANNW', 'empid': 'YW2WWA3'}, {'id': 'APP3', 'empid': 'Y3W3696'}, {'id': 'ANNW', 'empid': 'RM3NZ2Z'}, {'id': 'ANNW', 'empid': 'Y29Z2NA'}, {'id': 'ANNW', 'empid': 'DA9ZU3Z'}, {'id': 'APZW', 'empid': 'YWWAPNN'}, {'id': 'ANNW', 'empid': 'Y22Z26N'}, {'id': 'AZ29', 'empid': 'Y29AP9A'}, {'id': 'AUW9', 'empid': 'Y23923U'}, {'id': 'ANNW', 'empid': 'YUZWZZ9'}, {'id': 'ANNW', 'empid': 'QWW6AUN'}, {'id': 'ANNW', 'empid': 'QWWNP3P'}, {'id': 'A6W2', 'empid': 'Y3WPZPP'}, {'id': 'ANN2', 'empid': 'Y2336W3'}, {'id': 'ANNW', 'empid': 'RM9NU3A'}, {'id': 'ANNW', 'empid': 'QWWUAU2'}, {'id': 'ANNW', 'empid': 'Y22AAW2'}, {'id': 'ANNW', 'empid': 'Y2APWP6'}, {'id': 'ANNW', 'empid': 'Y22N2P6'}, {'id': 'ANNW', 'empid': 'Y3WP396'}, {'id': 'AN6Z', 'empid': 'Y266AAP'}, {'id': 'ANNW', 'empid': 'YUZP336'}, {'id': 'ANNW', 'empid': 'YUZP336'}, {'id': 'ANNW', 'empid': 'YUZP336'}]
代码如下
from operator import itemgetter
from itertools import groupby
from collections import OrderedDict
grouper = itemgetter('id', 'empid')
for i, v in groupby(res, key=grouper):
print(f"The count {dict(id=i[0], empid=i[1])} : {len(list(v))}")
我的输出没有给出正确的输出
{'id': 'ANNW', 'empid': 'YUZP336'}
上面的计数实际上是 12,但我得到了它的 3 次重复
The count {'id': 'ANNW', 'empid': 'YUZP336'} : 2
The count {'id': 'ANNW', 'empid': 'YUZP336'} : 1
The count {'id': 'ANNW', 'empid': 'YUZP336'} : 3
像上面一样我需要提取所有的id和empid
The count {'id': 'ANNW', 'empid': 'YUZP336'} : 12
The count {'id': 'ANNW', 'empid': 'QWW3NNA'} : 1
The count {'id': 'ANNW', 'empid': 'EP96ZZ2'} : 1
The count {'id': 'APN6', 'empid': 'EP96ZZ2'} : 1
.........
...........
我建议为此使用 Pandas:
df=pd.DataFrame(res)
gr = df.groupby(['id', 'empid']).size()
gr=gr.reset_index()
for i in gr.index:
print(f"The count {dict(id=gr.loc[i, 'id'], empid=gr.loc[i, 'empid'])} : {gr.loc[i, 0]}")
输出:
The count {'id': 'A623', 'empid': 'Q2ZA9A2'} : 1
The count {'id': 'A629', 'empid': 'XHWUWP3'} : 1
The count {'id': 'A629', 'empid': 'YU9AWZ2'} : 1
The count {'id': 'A62N', 'empid': 'Y2PZ393'} : 1
The count {'id': 'A62Z', 'empid': 'YU9AWZ2'} : 1
The count {'id': 'A6UP', 'empid': 'RBZ6N99'} : 1
The count {'id': 'A6UU', 'empid': 'Y3W3Z2P'} : 1
The count {'id': 'A6UW', 'empid': 'Y2P623A'} : 1
The count {'id': 'A6UW', 'empid': 'Y3WU93P'} : 1
The count {'id': 'A6W2', 'empid': 'QWWW2UA'} : 1
The count {'id': 'A6W2', 'empid': 'Y3WPZPP'} : 1
The count {'id': 'AN6Z', 'empid': 'QWW62UU'} : 1
The count {'id': 'AN6Z', 'empid': 'Y266AAP'} : 1
The count {'id': 'ANN2', 'empid': 'Y22NPW6'} : 1
The count {'id': 'ANN2', 'empid': 'Y2336W3'} : 1
The count {'id': 'ANN6', 'empid': 'XHWUW6Z'} : 1
The count {'id': 'ANN6', 'empid': 'Y2336W3'} : 1
The count {'id': 'ANN6', 'empid': 'YUZP336'} : 1
The count {'id': 'ANN9', 'empid': 'Y22NPW6'} : 1
The count {'id': 'ANNP', 'empid': 'Y2AN2U2'} : 1
The count {'id': 'ANNW', 'empid': 'AA92633'} : 1
The count {'id': 'ANNW', 'empid': 'APUW9A9'} : 1
The count {'id': 'ANNW', 'empid': 'DA366AW'} : 1
The count {'id': 'ANNW', 'empid': 'DA63NPN'} : 1
The count {'id': 'ANNW', 'empid': 'DA9ZU3Z'} : 1
The count {'id': 'ANNW', 'empid': 'EP96ZZ2'} : 1
The count {'id': 'ANNW', 'empid': 'JH9Z3PW'} : 1
The count {'id': 'ANNW', 'empid': 'JQ3PZNN'} : 1
The count {'id': 'ANNW', 'empid': 'Q2U6APA'} : 1
The count {'id': 'ANNW', 'empid': 'QWUAWUA'} : 1
The count {'id': 'ANNW', 'empid': 'QWUWUUN'} : 1
The count {'id': 'ANNW', 'empid': 'QWW23NU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW292U'} : 1
The count {'id': 'ANNW', 'empid': 'QWW3NNA'} : 1
The count {'id': 'ANNW', 'empid': 'QWW3PPU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW62U2'} : 1
The count {'id': 'ANNW', 'empid': 'QWW62UU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6322'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6A2U'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6AUN'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6PPU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW9ZW2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWA3ZP'} : 1
The count {'id': 'ANNW', 'empid': 'QWWA9ZN'} : 1
The count {'id': 'ANNW', 'empid': 'QWWN3AA'} : 1
The count {'id': 'ANNW', 'empid': 'QWWNP3P'} : 1
The count {'id': 'ANNW', 'empid': 'QWWNPAZ'} : 1
The count {'id': 'ANNW', 'empid': 'QWWP2UP'} : 1
The count {'id': 'ANNW', 'empid': 'QWWPA93'} : 1
The count {'id': 'ANNW', 'empid': 'QWWPZA2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWU6Z6'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUAU2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUAUW'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUPA2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUWA6'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUWZN'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW22U'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW22W'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW2AP'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW2U9'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW2W3'} : 1
The count {'id': 'ANNW', 'empid': 'QWWWU9P'} : 1
The count {'id': 'ANNW', 'empid': 'RM3NZ2Z'} : 1
The count {'id': 'ANNW', 'empid': 'RM93PU3'} : 1
The count {'id': 'ANNW', 'empid': 'RM96AA9'} : 1
The count {'id': 'ANNW', 'empid': 'RM9NP22'} : 1
The count {'id': 'ANNW', 'empid': 'RM9NU3A'} : 1
The count {'id': 'ANNW', 'empid': 'RM9PZ9A'} : 1
The count {'id': 'ANNW', 'empid': 'RMZ62ZA'} : 1
The count {'id': 'ANNW', 'empid': 'RMZ9U23'} : 1
The count {'id': 'ANNW', 'empid': 'RMZP266'} : 1
The count {'id': 'ANNW', 'empid': 'RMZUW33'} : 1
The count {'id': 'ANNW', 'empid': 'RX9NW23'} : 1
The count {'id': 'ANNW', 'empid': 'RX9Z2Z9'} : 1
The count {'id': 'ANNW', 'empid': 'RZ96A96'} : 1
The count {'id': 'ANNW', 'empid': 'SIZWNU3'} : 1
The count {'id': 'ANNW', 'empid': 'TYZW6PZ'} : 1
The count {'id': 'ANNW', 'empid': 'UZX2UWP'} : 1
The count {'id': 'ANNW', 'empid': 'V6X9ZNZ'} : 1
The count {'id': 'ANNW', 'empid': 'XGWA326'} : 1
The count {'id': 'ANNW', 'empid': 'Y22AAW2'} : 1
The count {'id': 'ANNW', 'empid': 'Y22N2P6'} : 1
The count {'id': 'ANNW', 'empid': 'Y22NPW6'} : 1
The count {'id': 'ANNW', 'empid': 'Y22P99U'} : 1
The count {'id': 'ANNW', 'empid': 'Y22Z26N'} : 1
The count {'id': 'ANNW', 'empid': 'Y23923U'} : 1
The count {'id': 'ANNW', 'empid': 'Y23932N'} : 1
The count {'id': 'ANNW', 'empid': 'Y23NPNU'} : 1
The count {'id': 'ANNW', 'empid': 'Y266AAP'} : 1
The count {'id': 'ANNW', 'empid': 'Y266NNW'} : 1
The count {'id': 'ANNW', 'empid': 'Y266W23'} : 1
The count {'id': 'ANNW', 'empid': 'Y269Z9A'} : 1
The count {'id': 'ANNW', 'empid': 'Y26P999'} : 1
The count {'id': 'ANNW', 'empid': 'Y26UNZA'} : 1
The count {'id': 'ANNW', 'empid': 'Y292Z9P'} : 1
The count {'id': 'ANNW', 'empid': 'Y296NZP'} : 1
The count {'id': 'ANNW', 'empid': 'Y29Z2NA'} : 1
The count {'id': 'ANNW', 'empid': 'Y2A6ZPU'} : 1
The count {'id': 'ANNW', 'empid': 'Y2A9AW6'} : 1
The count {'id': 'ANNW', 'empid': 'Y2AN6A6'} : 1
The count {'id': 'ANNW', 'empid': 'Y2APWP6'} : 1
The count {'id': 'ANNW', 'empid': 'Y2N39PA'} : 1
The count {'id': 'ANNW', 'empid': 'Y2NUZA3'} : 1
The count {'id': 'ANNW', 'empid': 'Y2NZU3U'} : 1
The count {'id': 'ANNW', 'empid': 'Y2P636U'} : 1
The count {'id': 'ANNW', 'empid': 'Y2PN929'} : 1
The count {'id': 'ANNW', 'empid': 'Y2PU692'} : 1
The count {'id': 'ANNW', 'empid': 'Y2Z2236'} : 1
The count {'id': 'ANNW', 'empid': 'Y2Z2666'} : 1
The count {'id': 'ANNW', 'empid': 'Y2Z3ZPP'} : 1
The count {'id': 'ANNW', 'empid': 'Y2ZNAZZ'} : 1
The count {'id': 'ANNW', 'empid': 'Y2ZZ9PN'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W292W'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W39PP'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W3AA9'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W3Z2P'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WP396'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WP3UA'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WPU93'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WPZNN'} : 1
The count {'id': 'ANNW', 'empid': 'YA9P9W6'} : 1
The count {'id': 'ANNW', 'empid': 'YAZ6U96'} : 1
The count {'id': 'ANNW', 'empid': 'YGWWZU2'} : 1
The count {'id': 'ANNW', 'empid': 'YONWNNU'} : 1
The count {'id': 'ANNW', 'empid': 'YU23NP6'} : 1
The count {'id': 'ANNW', 'empid': 'YU3323W'} : 1
The count {'id': 'ANNW', 'empid': 'YU966WZ'} : 1
The count {'id': 'ANNW', 'empid': 'YU9ANU2'} : 1
The count {'id': 'ANNW', 'empid': 'YU9AWZ2'} : 1
The count {'id': 'ANNW', 'empid': 'YUAU2A3'} : 1
The count {'id': 'ANNW', 'empid': 'YUN66U6'} : 1
The count {'id': 'ANNW', 'empid': 'YUNNANN'} : 1
The count {'id': 'ANNW', 'empid': 'YUW2WNW'} : 1
The count {'id': 'ANNW', 'empid': 'YUZN66N'} : 1
The count {'id': 'ANNW', 'empid': 'YUZP336'} : 6
The count {'id': 'ANNW', 'empid': 'YUZUW62'} : 1
The count {'id': 'ANNW', 'empid': 'YUZWZZ9'} : 1
The count {'id': 'ANNW', 'empid': 'YW2UZUP'} : 1
The count {'id': 'ANNW', 'empid': 'YW2WWA3'} : 1
The count {'id': 'ANNW', 'empid': 'YW3ZU9P'} : 1
The count {'id': 'ANNW', 'empid': 'YW662WW'} : 1
The count {'id': 'ANNW', 'empid': 'YW9NNWW'} : 1
The count {'id': 'ANNW', 'empid': 'YWU2AWW'} : 1
The count {'id': 'ANNW', 'empid': 'YWUN6UP'} : 1
The count {'id': 'ANNW', 'empid': 'YWUZ9Z3'} : 1
The count {'id': 'ANNW', 'empid': 'YWZ3PU3'} : 1
The count {'id': 'ANP9', 'empid': 'QWWW22U'} : 1
The count {'id': 'ANP9', 'empid': 'Y2A6ZPU'} : 1
The count {'id': 'ANZW', 'empid': 'QWW9WUN'} : 1
The count {'id': 'AP99', 'empid': 'RX9Z2Z9'} : 1
The count {'id': 'AP99', 'empid': 'Y2A6ZPU'} : 1
The count {'id': 'AP9A', 'empid': 'QWW9WUN'} : 1
The count {'id': 'APA9', 'empid': 'YPNNP2A'} : 1
The count {'id': 'APN6', 'empid': 'EP96ZZ2'} : 1
The count {'id': 'APN6', 'empid': 'QWWZAN9'} : 1
The count {'id': 'APN6', 'empid': 'VAWA66A'} : 1
The count {'id': 'APN6', 'empid': 'Y2Z9PZZ'} : 1
The count {'id': 'APNP', 'empid': 'Q2ZA9A2'} : 1
The count {'id': 'APNU', 'empid': 'VPXZ9P3'} : 1
The count {'id': 'APNU', 'empid': 'Y3W3696'} : 1
The count {'id': 'APP2', 'empid': 'Y2336W3'} : 1
The count {'id': 'APP3', 'empid': 'Y3W3696'} : 1
The count {'id': 'APPA', 'empid': 'RX96393'} : 1
The count {'id': 'APPW', 'empid': 'RM96ZWW'} : 1
The count {'id': 'APZU', 'empid': 'YUAU2A3'} : 1
The count {'id': 'APZW', 'empid': 'VUX3Z2U'} : 1
The count {'id': 'APZW', 'empid': 'YWWAPNN'} : 1
The count {'id': 'AUW9', 'empid': 'Y23923U'} : 1
The count {'id': 'AWN6', 'empid': 'QWW3PPU'} : 1
The count {'id': 'AWNP', 'empid': 'QWWWU9P'} : 1
The count {'id': 'AWNZ', 'empid': 'XFW2UWW'} : 1
The count {'id': 'AWZ2', 'empid': 'VAW6U2Z'} : 1
The count {'id': 'AWZ2', 'empid': 'YUAU2A3'} : 1
The count {'id': 'AZ29', 'empid': 'Y29AP9A'} : 1
要itertools.groupby
按预期工作,您需要先对数据进行排序。所以尝试在 groupby
:
sorted(res, key=grouper)
而不是 res
sorted_res = sorted(res, key=grouper)
# also using argument unpacking in the `for` statement
for (id_, empid), gr in groupby(sorted_res, key=grouper):
print(f"The count {dict(id=id_, empid=empid)} : {len(list(gr))}")
这给出了
The count {'id': 'A623', 'empid': 'Q2ZA9A2'} : 1
The count {'id': 'A629', 'empid': 'XHWUWP3'} : 1
The count {'id': 'A629', 'empid': 'YU9AWZ2'} : 1
The count {'id': 'A62N', 'empid': 'Y2PZ393'} : 1
The count {'id': 'A62Z', 'empid': 'YU9AWZ2'} : 1
The count {'id': 'A6UP', 'empid': 'RBZ6N99'} : 1
The count {'id': 'A6UU', 'empid': 'Y3W3Z2P'} : 1
The count {'id': 'A6UW', 'empid': 'Y2P623A'} : 1
The count {'id': 'A6UW', 'empid': 'Y3WU93P'} : 1
The count {'id': 'A6W2', 'empid': 'QWWW2UA'} : 1
The count {'id': 'A6W2', 'empid': 'Y3WPZPP'} : 1
The count {'id': 'AN6Z', 'empid': 'QWW62UU'} : 1
The count {'id': 'AN6Z', 'empid': 'Y266AAP'} : 1
The count {'id': 'ANN2', 'empid': 'Y22NPW6'} : 1
The count {'id': 'ANN2', 'empid': 'Y2336W3'} : 1
The count {'id': 'ANN6', 'empid': 'XHWUW6Z'} : 1
The count {'id': 'ANN6', 'empid': 'Y2336W3'} : 1
The count {'id': 'ANN6', 'empid': 'YUZP336'} : 1
The count {'id': 'ANN9', 'empid': 'Y22NPW6'} : 1
The count {'id': 'ANNP', 'empid': 'Y2AN2U2'} : 1
The count {'id': 'ANNW', 'empid': 'AA92633'} : 1
The count {'id': 'ANNW', 'empid': 'APUW9A9'} : 1
The count {'id': 'ANNW', 'empid': 'DA366AW'} : 1
The count {'id': 'ANNW', 'empid': 'DA63NPN'} : 1
The count {'id': 'ANNW', 'empid': 'DA9ZU3Z'} : 1
The count {'id': 'ANNW', 'empid': 'EP96ZZ2'} : 1
The count {'id': 'ANNW', 'empid': 'JH9Z3PW'} : 1
The count {'id': 'ANNW', 'empid': 'JQ3PZNN'} : 1
The count {'id': 'ANNW', 'empid': 'Q2U6APA'} : 1
The count {'id': 'ANNW', 'empid': 'QWUAWUA'} : 1
The count {'id': 'ANNW', 'empid': 'QWUWUUN'} : 1
The count {'id': 'ANNW', 'empid': 'QWW23NU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW292U'} : 1
The count {'id': 'ANNW', 'empid': 'QWW3NNA'} : 1
The count {'id': 'ANNW', 'empid': 'QWW3PPU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW62U2'} : 1
The count {'id': 'ANNW', 'empid': 'QWW62UU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6322'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6A2U'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6AUN'} : 1
The count {'id': 'ANNW', 'empid': 'QWW6PPU'} : 1
The count {'id': 'ANNW', 'empid': 'QWW9ZW2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWA3ZP'} : 1
The count {'id': 'ANNW', 'empid': 'QWWA9ZN'} : 1
The count {'id': 'ANNW', 'empid': 'QWWN3AA'} : 1
The count {'id': 'ANNW', 'empid': 'QWWNP3P'} : 1
The count {'id': 'ANNW', 'empid': 'QWWNPAZ'} : 1
The count {'id': 'ANNW', 'empid': 'QWWP2UP'} : 1
The count {'id': 'ANNW', 'empid': 'QWWPA93'} : 1
The count {'id': 'ANNW', 'empid': 'QWWPZA2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWU6Z6'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUAU2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUAUW'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUPA2'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUWA6'} : 1
The count {'id': 'ANNW', 'empid': 'QWWUWZN'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW22U'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW22W'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW2AP'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW2U9'} : 1
The count {'id': 'ANNW', 'empid': 'QWWW2W3'} : 1
The count {'id': 'ANNW', 'empid': 'QWWWU9P'} : 1
The count {'id': 'ANNW', 'empid': 'RM3NZ2Z'} : 1
The count {'id': 'ANNW', 'empid': 'RM93PU3'} : 1
The count {'id': 'ANNW', 'empid': 'RM96AA9'} : 1
The count {'id': 'ANNW', 'empid': 'RM9NP22'} : 1
The count {'id': 'ANNW', 'empid': 'RM9NU3A'} : 1
The count {'id': 'ANNW', 'empid': 'RM9PZ9A'} : 1
The count {'id': 'ANNW', 'empid': 'RMZ62ZA'} : 1
The count {'id': 'ANNW', 'empid': 'RMZ9U23'} : 1
The count {'id': 'ANNW', 'empid': 'RMZP266'} : 1
The count {'id': 'ANNW', 'empid': 'RMZUW33'} : 1
The count {'id': 'ANNW', 'empid': 'RX9NW23'} : 1
The count {'id': 'ANNW', 'empid': 'RX9Z2Z9'} : 1
The count {'id': 'ANNW', 'empid': 'RZ96A96'} : 1
The count {'id': 'ANNW', 'empid': 'SIZWNU3'} : 1
The count {'id': 'ANNW', 'empid': 'TYZW6PZ'} : 1
The count {'id': 'ANNW', 'empid': 'UZX2UWP'} : 1
The count {'id': 'ANNW', 'empid': 'V6X9ZNZ'} : 1
The count {'id': 'ANNW', 'empid': 'XGWA326'} : 1
The count {'id': 'ANNW', 'empid': 'Y22AAW2'} : 1
The count {'id': 'ANNW', 'empid': 'Y22N2P6'} : 1
The count {'id': 'ANNW', 'empid': 'Y22NPW6'} : 1
The count {'id': 'ANNW', 'empid': 'Y22P99U'} : 1
The count {'id': 'ANNW', 'empid': 'Y22Z26N'} : 1
The count {'id': 'ANNW', 'empid': 'Y23923U'} : 1
The count {'id': 'ANNW', 'empid': 'Y23932N'} : 1
The count {'id': 'ANNW', 'empid': 'Y23NPNU'} : 1
The count {'id': 'ANNW', 'empid': 'Y266AAP'} : 1
The count {'id': 'ANNW', 'empid': 'Y266NNW'} : 1
The count {'id': 'ANNW', 'empid': 'Y266W23'} : 1
The count {'id': 'ANNW', 'empid': 'Y269Z9A'} : 1
The count {'id': 'ANNW', 'empid': 'Y26P999'} : 1
The count {'id': 'ANNW', 'empid': 'Y26UNZA'} : 1
The count {'id': 'ANNW', 'empid': 'Y292Z9P'} : 1
The count {'id': 'ANNW', 'empid': 'Y296NZP'} : 1
The count {'id': 'ANNW', 'empid': 'Y29Z2NA'} : 1
The count {'id': 'ANNW', 'empid': 'Y2A6ZPU'} : 1
The count {'id': 'ANNW', 'empid': 'Y2A9AW6'} : 1
The count {'id': 'ANNW', 'empid': 'Y2AN6A6'} : 1
The count {'id': 'ANNW', 'empid': 'Y2APWP6'} : 1
The count {'id': 'ANNW', 'empid': 'Y2N39PA'} : 1
The count {'id': 'ANNW', 'empid': 'Y2NUZA3'} : 1
The count {'id': 'ANNW', 'empid': 'Y2NZU3U'} : 1
The count {'id': 'ANNW', 'empid': 'Y2P636U'} : 1
The count {'id': 'ANNW', 'empid': 'Y2PN929'} : 1
The count {'id': 'ANNW', 'empid': 'Y2PU692'} : 1
The count {'id': 'ANNW', 'empid': 'Y2Z2236'} : 1
The count {'id': 'ANNW', 'empid': 'Y2Z2666'} : 1
The count {'id': 'ANNW', 'empid': 'Y2Z3ZPP'} : 1
The count {'id': 'ANNW', 'empid': 'Y2ZNAZZ'} : 1
The count {'id': 'ANNW', 'empid': 'Y2ZZ9PN'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W292W'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W39PP'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W3AA9'} : 1
The count {'id': 'ANNW', 'empid': 'Y3W3Z2P'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WP396'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WP3UA'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WPU93'} : 1
The count {'id': 'ANNW', 'empid': 'Y3WPZNN'} : 1
The count {'id': 'ANNW', 'empid': 'YA9P9W6'} : 1
The count {'id': 'ANNW', 'empid': 'YAZ6U96'} : 1
The count {'id': 'ANNW', 'empid': 'YGWWZU2'} : 1
The count {'id': 'ANNW', 'empid': 'YONWNNU'} : 1
The count {'id': 'ANNW', 'empid': 'YU23NP6'} : 1
The count {'id': 'ANNW', 'empid': 'YU3323W'} : 1
The count {'id': 'ANNW', 'empid': 'YU966WZ'} : 1
The count {'id': 'ANNW', 'empid': 'YU9ANU2'} : 1
The count {'id': 'ANNW', 'empid': 'YU9AWZ2'} : 1
The count {'id': 'ANNW', 'empid': 'YUAU2A3'} : 1
The count {'id': 'ANNW', 'empid': 'YUN66U6'} : 1
The count {'id': 'ANNW', 'empid': 'YUNNANN'} : 1
The count {'id': 'ANNW', 'empid': 'YUW2WNW'} : 1
The count {'id': 'ANNW', 'empid': 'YUZN66N'} : 1
The count {'id': 'ANNW', 'empid': 'YUZP336'} : 6
The count {'id': 'ANNW', 'empid': 'YUZUW62'} : 1
The count {'id': 'ANNW', 'empid': 'YUZWZZ9'} : 1
The count {'id': 'ANNW', 'empid': 'YW2UZUP'} : 1
The count {'id': 'ANNW', 'empid': 'YW2WWA3'} : 1
The count {'id': 'ANNW', 'empid': 'YW3ZU9P'} : 1
The count {'id': 'ANNW', 'empid': 'YW662WW'} : 1
The count {'id': 'ANNW', 'empid': 'YW9NNWW'} : 1
The count {'id': 'ANNW', 'empid': 'YWU2AWW'} : 1
The count {'id': 'ANNW', 'empid': 'YWUN6UP'} : 1
The count {'id': 'ANNW', 'empid': 'YWUZ9Z3'} : 1
The count {'id': 'ANNW', 'empid': 'YWZ3PU3'} : 1
The count {'id': 'ANP9', 'empid': 'QWWW22U'} : 1
The count {'id': 'ANP9', 'empid': 'Y2A6ZPU'} : 1
The count {'id': 'ANZW', 'empid': 'QWW9WUN'} : 1
The count {'id': 'AP99', 'empid': 'RX9Z2Z9'} : 1
The count {'id': 'AP99', 'empid': 'Y2A6ZPU'} : 1
The count {'id': 'AP9A', 'empid': 'QWW9WUN'} : 1
The count {'id': 'APA9', 'empid': 'YPNNP2A'} : 1
The count {'id': 'APN6', 'empid': 'EP96ZZ2'} : 1
The count {'id': 'APN6', 'empid': 'QWWZAN9'} : 1
The count {'id': 'APN6', 'empid': 'VAWA66A'} : 1
The count {'id': 'APN6', 'empid': 'Y2Z9PZZ'} : 1
The count {'id': 'APNP', 'empid': 'Q2ZA9A2'} : 1
The count {'id': 'APNU', 'empid': 'VPXZ9P3'} : 1
The count {'id': 'APNU', 'empid': 'Y3W3696'} : 1
The count {'id': 'APP2', 'empid': 'Y2336W3'} : 1
The count {'id': 'APP3', 'empid': 'Y3W3696'} : 1
The count {'id': 'APPA', 'empid': 'RX96393'} : 1
The count {'id': 'APPW', 'empid': 'RM96ZWW'} : 1
The count {'id': 'APZU', 'empid': 'YUAU2A3'} : 1
The count {'id': 'APZW', 'empid': 'VUX3Z2U'} : 1
The count {'id': 'APZW', 'empid': 'YWWAPNN'} : 1
The count {'id': 'AUW9', 'empid': 'Y23923U'} : 1
The count {'id': 'AWN6', 'empid': 'QWW3PPU'} : 1
The count {'id': 'AWNP', 'empid': 'QWWWU9P'} : 1
The count {'id': 'AWNZ', 'empid': 'XFW2UWW'} : 1
The count {'id': 'AWZ2', 'empid': 'VAW6U2Z'} : 1
The count {'id': 'AWZ2', 'empid': 'YUAU2A3'} : 1
The count {'id': 'AZ29', 'empid': 'Y29AP9A'} : 1
collections.Counter
的替代方案:
>>> from operator import itemgetter
>>> from collections import Counter
>>> Counter(map(itemgetter('id', 'empid'), res))
Counter({('ANN6', 'YUZP336'): 1,
('ANNW', 'YUZP336'): 6,
('ANNW', 'Y2Z2666'): 1,
('ANNW', 'YUZN66N'): 1,
('ANNW', 'YAZ6U96'): 1,
('ANNW', 'Y26UNZA'): 1,
...