随笔 - 911  文章 - 5  评论 - 94  阅读 - 243万

Python对json排序分组

 

res_dl是一个json字符串,如下:

[{'time': '2020/8/10 12:37:29', 'url': 'http://www.baidu.com/Account/QrCodeLoginPost?returnUrl=127.0.0.1', 'ip': '120.229.137.87'}, {'time': '2020/8/10 12:37:25', 'url': 'http://www.baidu.com/Account/QrCodeLoginPost?returnUrl=www.baidu.com', 'ip': '120.229.137.87'}, {'time': '2020/8/10 12:37:20', 'url': 'http://www.baidu.com/Account/QrCodeLoginPost?returnUrl=/www.baidu.com', 'ip': '120.229.137.87'}, {'time': '2020/8/10 12:37:16', 'url': 'http://www.baidu.com/Account/QrCodeLoginPost?returnUrl=http://www.baidu.com', 'ip': '120.229.137.87'}, {'time': '2020/8/10 12:37:07', 'url': 'http://www.baidu.com/Account/QrCodeLoginPost?returnUrl=', 'ip': '120.229.137.87'}, {'time': '2020/8/10 12:37:09', 'url': 'http://www.baidu.com/Account/QrCodeLoginPost?returnUrl=1', 'ip': '120.229.137.87'}, {'time': '2020/8/10 12:36:47', 'url': 'http://www.baidu.com/Account/LoginPost', 'ip': '120.229.137.87'}, {'time': '2020/8/10 12:36:41', 'url': 'http://www.baidu.com/Account/LoginPost', 'ip': '120.229.137.87'}, {'time': '2020/8/9 3:14:16', 'url': 'http://www.baidu.com/Account/QrCodeLoginPost?returnUrl=https://qy.xin.com/', 'ip': '40.77.190.118'}, {'time': '2020/8/9 2:22:04', 'url': 'http://www.baidu.com/Gemfile', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:04', 'url': 'http://www.baidu.com/Gemfile', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:02', 'url': 'http://www.baidu.com/images/images - Copy', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:02', 'url': 'http://www.baidu.com/images/mt', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:02', 'url': 'http://www.baidu.com/images/images (copy)', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:03', 'url': 'http://www.baidu.com/Gemfile', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:02', 'url': 'http://www.baidu.com/images/de', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:02', 'url': 'http://www.baidu.com/images/fr', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:02', 'url': 'http://www.baidu.com/images/en', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:02', 'url': 'http://www.baidu.com/images/tcpdf', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:01', 'url': 'http://www.baidu.com/images/fileserver', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:01', 'url': 'http://www.baidu.com/images/wp', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:01', 'url': 'http://www.baidu.com/images/help', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:01', 'url': 'http://www.baidu.com/images/index_files', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:01', 'url': 'http://www.baidu.com/images/reset', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:00', 'url': 'http://www.baidu.com/images/utf8', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:01', 'url': 'http://www.baidu.com/images/forgot', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:00', 'url': 'http://www.baidu.com/images/lostpassword', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:00', 'url': 'http://www.baidu.com/images/cerberusweb', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:00', 'url': 'http://www.baidu.com/images/uri', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:59', 'url': 'http://www.baidu.com/images/usercp', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:22:00', 'url': 'http://www.baidu.com/images/url', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:59', 'url': 'http://www.baidu.com/images/manual', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:59', 'url': 'http://www.baidu.com/images/manuals', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:59', 'url': 'http://www.baidu.com/images/latest', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:58', 'url': 'http://www.baidu.com/images/release', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:58', 'url': 'http://www.baidu.com/images/access', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:57', 'url': 'http://www.baidu.com/images/page', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:58', 'url': 'http://www.baidu.com/images/doc', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:57', 'url': 'http://www.baidu.com/images/misc', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:57', 'url': 'http://www.baidu.com/images/servlet', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:57', 'url': 'http://www.baidu.com/images/storage', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:56', 'url': 'http://www.baidu.com/images/folder', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:56', 'url': 'http://www.baidu.com/images/space', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:56', 'url': 'http://www.baidu.com/images/static', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:55', 'url': 'http://www.baidu.com/images/site', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:56', 'url': 'http://www.baidu.com/images/version', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:55', 'url': 'http://www.baidu.com/images/projects', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:54', 'url': 'http://www.baidu.com/images/PHP', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:54', 'url': 'http://www.baidu.com/images/index', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:55', 'url': 'http://www.baidu.com/images/contents', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:55', 'url': 'http://www.baidu.com/images/music', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:55', 'url': 'http://www.baidu.com/images/Index', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:53', 'url': 'http://www.baidu.com/images/browse', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:54', 'url': 'http://www.baidu.com/images/demo', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:53', 'url': 'http://www.baidu.com/images/view', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:54', 'url': 'http://www.baidu.com/images/php', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:54', 'url': 'http://www.baidu.com/images/thread', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:52', 'url': 'http://www.baidu.com/images/forms', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:53', 'url': 'http://www.baidu.com/images/user', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:53', 'url': 'http://www.baidu.com/images/portal', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:52', 'url': 'http://www.baidu.com/images/flash', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:53', 'url': 'http://www.baidu.com/images/xml', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:52', 'url': 'http://www.baidu.com/images/templates', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:51', 'url': 'http://www.baidu.com/images/content', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:52', 'url': 'http://www.baidu.com/images/media', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:52', 'url': 'http://www.baidu.com/images/main', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:51', 'url': 'http://www.baidu.com/images/security', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:51', 'url': 'http://www.baidu.com/images/2014', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:50', 'url': 'http://www.baidu.com/images/10', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:51', 'url': 'http://www.baidu.com/images/2013', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:51', 'url': 'http://www.baidu.com/images/2012', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:50', 'url': 'http://www.baidu.com/images/2011', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:50', 'url': 'http://www.baidu.com/images/6', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:50', 'url': 'http://www.baidu.com/images/8', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:49', 'url': 'http://www.baidu.com/images/5', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:50', 'url': 'http://www.baidu.com/images/9', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:50', 'url': 'http://www.baidu.com/images/7', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:49', 'url': 'http://www.baidu.com/images/00', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:49', 'url': 'http://www.baidu.com/images/3', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:49', 'url': 'http://www.baidu.com/images/2', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:49', 'url': 'http://www.baidu.com/images/4', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:48', 'url': 'http://www.baidu.com/images/0', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:49', 'url': 'http://www.baidu.com/images/1', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:48', 'url': 'http://www.baidu.com/images/w', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:48', 'url': 'http://www.baidu.com/images/q', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:48', 'url': 'http://www.baidu.com/images/v', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:48', 'url': 'http://www.baidu.com/images/t', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:48', 'url': 'http://www.baidu.com/images/z', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:48', 'url': 'http://www.baidu.com/images/s', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:47', 'url': 'http://www.baidu.com/images/o', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:48', 'url': 'http://www.baidu.com/images/p', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:48', 'url': 'http://www.baidu.com/images/r', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:47', 'url': 'http://www.baidu.com/images/n', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:47', 'url': 'http://www.baidu.com/images/j', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:47', 'url': 'http://www.baidu.com/images/l', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:47', 'url': 'http://www.baidu.com/images/m', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:47', 'url': 'http://www.baidu.com/images/k', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:47', 'url': 'http://www.baidu.com/images/i', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:47', 'url': 'http://www.baidu.com/images/h', 'ip': '120.229.137.87'}, {'time': '2020/8/9 2:21:47', 'url': 'http://www.baidu.com/images/f', 'ip': '120.229.137.87'}]

以ip为关键字进行分组排序:

复制代码
#先对返回结果按IP排序,然后再使用groupby分组计算ip访问数量
sorted_res_dl = sorted(res_dl, key = lambda x:x["ip"])

ret = list()
for _, group in groupby(sorted_res_dl, lambda x: x.get('ip')):
    ret.append(list(group))
print(ret) #分组完成

for item in ret:
    print('%s,扫描 %d 次'% (item[0]['ip'],len(item)))
复制代码

 

posted on   momingliu11  阅读(1299)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示