You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用aiofiles时处理日志排序遭遇DateTime格式解析错误

DateTime格式解析问题排查与解决

日志内容

2023-02-16 21:38:59,873 : Device was cradled
2023-02-16 21:38:59,873 : Device connected to network, IP 

原错误代码

from datetime import datetime as dt
sorted(files, key=lambda file: dt.strptime(file.split()[0],
                                           "%Y-%m-%d %H:%M:%S"))

错误信息

ValueError: time data '2023-02-16' does not match format '%Y-%m-%d %H:%M:%S'

问题原因

  1. 时间截取不完整:file.split()[0]只提取了日志行的日期部分2023-02-16,但格式字符串%Y-%m-%d %H:%M:%S要求传入包含日期+时分秒的完整时间字符串,两者不匹配。
  2. 未处理毫秒格式:原日志时间戳包含逗号分隔的毫秒(如21:38:59,873),原格式字符串未对应处理该部分。

解决方法

修正时间戳的截取方式和格式字符串,匹配日志的实际时间格式:

from datetime import datetime as dt

# 假设files是存储日志行的列表
sorted_files = sorted(files, key=lambda line: dt.strptime(line.split(' : ')[0], "%Y-%m-%d %H:%M:%S,%f"))

关键调整点:

  • 用line.split(' : ')[0]截取完整的时间戳部分(如2023-02-16 21:38:59,873),而非仅日期。
  • 格式字符串改为%Y-%m-%d %H:%M:%S,%f,其中%f对应处理逗号后的毫秒数值。

内容的提问来源于stack exchange,提问作者Harry Wilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:48:24