Python日期格式化ValueError:未转换的数据剩余:

1 投票
1 回答
49 浏览
提问于 2025-04-14 18:15

我正在查看一个日志文件,想要找出日志之间的时间差。下面是我写的单元测试代码,用来解决这个问题。我想弄明白为什么这个格式没有被正确解析。如果有人能帮忙,我会非常感激。

#import datetime
#import pandas as pd
from datetime import datetime

string1 = "02-23-24 13:37:46 0006847636: MKAP: Download"
string2 = "02-23-24 11:33:26 0000352403: MKAP: Download"
           #%m-%d-%y %H:%M:%S %f
if __name__ == '__main__':
    print(string2[:28].strip())
    if string2[30:] == "MKAP: Download":
        print("True")
        dt1 = datetime.strptime(string1[:28], "%m-%d-%y %H:%M:%S %f")
        dt2 = datetime.strptime(string2[:28], "%m-%d-%y %H:%M:%S %f")
        delta = dt2 - dt1
        print("Test", delta)

    else:
        print("False")

错误信息:

"C:\Scripts\python.exe" "ScriptFilter/test1.py"
Traceback (most recent call last):
  File "ScriptFilter/test1.py", line 8, in <module>
    dt1 = datetime.strptime(str_dt1, "%m-%d-%y %H:%M:%S %f")
  File "lib\_strptime.py", line 577, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "Python37\lib\_strptime.py", line 362, in _strptime
    data_string[found.end():])
ValueError: unconverted data remains: 7636

1 个回答

0

日期的格式不对。试试这个:

if __name__ == '__main__':
    print(string2[:28].strip())
    if string2[30:] == "MKAP: Download":
        print("True")
        dt1 = datetime.strptime(str(string1[:28]), "%m-%d-%y %H:%M:%S %f")  # Corrected format
        dt2 = datetime.strptime(string2[:28].strip(), "%m-%d-%y %H:%M:%S %f")  # Corrected format
        delta = dt2 - dt1
        print("Test", delta)
    else:
        print("False")

撰写回答