如何从CSV解析datetimes?

2024-07-04 05:59:11 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我使用line.find的特定行:

Alta,"08-10-2019 16:34:42","08-10-2019 18:03:42","RESOLVIDO","roteador-assu-tely","Host indisponível","1h 29m","Não","",""

显然,有许多其他行,因为它是一个完整的CSV文件,但让我们集中在这个特定的行现在。 我使用split(',')来分隔行,并试图用它生成一个datetime对象,我做错了什么

with open(path + "zbx_problems_export.csv", "r") as f:
    lines = f.readlines()
inicio_expediente = datetime.time(6, 40, 00)
fim_expediente = datetime.time(16, 30, 00)

for line in lines:
    if line.find('roteador-assu-tely') >= 0:
        a = line.split(',')
        data_inicio = datetime.datetime.strptime(a[1], '"%d-%m-%Y %H:%M:%S"')
        data_fim = datetime.datetime.strptime(a[2], '"%d-%m-%Y %H:%M:%S"')
        if data_inicio.time > inicio_expediente.time and data_inicio.time < fim_expediente.time and data_inicio.weekday() != 5 and data_inicio.weekday() != 6: 

完整的错误消息是:

Traceback (most recent call last):
  File "ScriptPythonRelatorioProto.py", line 31, in <module>
     if data_inicio.time > inicio_expediente.time and data_inicio.time < fim_expediente.time and data_inicio.weekday() != 5 and data_inicio.weekday() != 6:
AttributeError: 'datetime.time' object has no attribute 'time'

第31行是示例代码中最后一次发布


Tags: anddatadatetimeiftimelinefindsplit
1条回答
网友
1楼 · 发布于 2024-07-04 05:59:11
inicio_expediente = datetime.time(6, 40, 00)

[..]

inicio_expediente.time

inicio_expediente是一个time对象,它没有.time属性。只需删除这里的.time

然后这里还有另一个问题:data_inicio.time
data_inicio是一个datetime对象,它有一个.time,但那是一个方法,不是一个普通属性,所以它必须是data_inicio.time()

相关问题 更多 >

    热门问题