如何将collections.Counter统计的时间戳出现次数结果转换为指定格式的对象列表
如何将Counter统计结果转换为含timestamp和count的对象列表?
刚好我之前也碰到过类似的需求,其实解决起来挺简单的,用Python的列表推导式就能快速完成格式转换。
你已经用collections.Counter统计出了每个时间戳的出现次数,现在只需要遍历Counter的键值对,把每一对都转换成你需要的字典结构就行:
示例代码
import collections # 假设这是你的原始时间戳列表 MyList = [ "2021-10-09T00:26:16", "2021-10-09T00:26:16", "2021-10-08T15:08:37", "2021-10-08T15:08:37", "2021-10-08T13:40:50" ] # 统计时间戳出现次数 count = collections.Counter(MyList) # 转换为目标格式的对象列表 result_list = [{"timestamp": ts, "count": cnt} for ts, cnt in count.items()] # 查看转换后的结果 print(result_list)
输出结果
[ {"timestamp": "2021-10-09T00:26:16", "count": 2}, {"timestamp": "2021-10-08T15:08:37", "count": 2}, {"timestamp": "2021-10-08T13:40:50", "count": 1} ]
额外优化:按时间戳排序
如果希望结果列表按时间先后顺序排列,可以在转换后增加排序操作:
# 按时间戳升序排序 sorted_result = sorted(result_list, key=lambda item: item["timestamp"])
这样处理后,返回的result_list或者sorted_result就完全符合你期望的格式了。
内容的提问来源于stack exchange,提问作者sam
相关产品推荐
相关产品推荐

