以下是一个示例代码,演示如何按最新的时间戳,按天对日志进行分组:
import datetime
def group_logs_by_day(logs):
log_groups = {}
for log in logs:
timestamp = log['timestamp']
date = datetime.datetime.fromtimestamp(timestamp).date()
if date not in log_groups:
log_groups[date] = []
log_groups[date].append(log)
return log_groups
使用示例:
logs = [
{'timestamp': 1619904000, 'message': 'Log 1'},
{'timestamp': 1619904000, 'message': 'Log 2'},
{'timestamp': 1619990400, 'message': 'Log 3'},
{'timestamp': 1620076800, 'message': 'Log 4'},
{'timestamp': 1620076800, 'message': 'Log 5'}
]
log_groups = group_logs_by_day(logs)
for date, logs in log_groups.items():
print(f"Logs for {date}:")
for log in logs:
print(log['message'])
print()
输出结果:
Logs for 2021-05-02:
Log 1
Log 2
Logs for 2021-05-02:
Log 3
Logs for 2021-05-04:
Log 4
Log 5
在示例代码中,group_logs_by_day
函数接受一个日志列表作为输入,并返回一个字典,其中键是日期,值是该日期的日志列表。函数遍历日志列表,提取每个日志的时间戳并将其转换为日期对象。然后,它检查日期是否已经在日志组中,如果不在,则创建一个新的日志列表。然后,它将当前日志添加到相应的日期的日志列表中。最后,函数返回日志组字典。
在使用示例中,我们创建了一个包含不同时间戳的日志列表。然后,我们使用group_logs_by_day
函数将日志按天分组,并遍历结果字典以打印分组后的日志。