Python 如何修复“'TypeError:datetime.time'对象不可订阅”

Python 如何修复“'TypeError:datetime.time'对象不可订阅”,python,excel,python-datetime,Python,Excel,Python Datetime,我正在提取数据时间并计算结果,但00:00:00值以不同的方式显示。为什么呢?我怎样才能修好它 我已经试着把它读成一个字符串,得到一个char的子列表并转换成一个整数 Ts = datetime.timedelta(hours = 0, minutes = 0, seconds = 0) for i in range(0,len(cell_sl)): for item in cell_sl: trans = item[i] Ts = Ts + dateti

我正在提取数据时间并计算结果,但00:00:00值以不同的方式显示。为什么呢?我怎样才能修好它

我已经试着把它读成一个字符串,得到一个char的子列表并转换成一个整数

Ts = datetime.timedelta(hours = 0, minutes = 0, seconds = 0)
for i in range(0,len(cell_sl)):
    for item in cell_sl:
        trans = item[i]
        Ts = Ts + datetime.timedelta(
                hours=int(str(trans[:2])),
                minutes=int(str(trans[3:-3])),
                seconds=int(str(trans[6:]))
        )


print(Ts)
我希望输出是例如00:25:18,但是我得到 TypeError:“datetime.time”对象不可订阅

您的trans或项目值都是datetime.time对象的-这就是错误告诉您的:

TypeError:“datetime.time”对象不可下标

不能像f.e.字符串那样对其进行切片/下标:

如果不确定是哪种类型,请使用printtypeitem查看它是什么类型

具有一个datetime值的完整示例:

import datetime

Ts = datetime.timedelta(hours = 0, minutes = 0, seconds = 0)

print(Ts)

now = datetime.datetime.now()
Ts += datetime.timedelta(hours=now.hour, minutes=now.minute, seconds=now.second)

print(Ts)
输出:

0:00:00
10:24:17

什么是cell_sl?@beer44这是一个包含字符串的列表,我需要在excel工作表中解析,索引_sl=[0,2]和cell_sl=[00:00:00,00:22:16]问题存在于cell_sl的elem[0]中,因为它显示在1899-12-30 00:00:00:00谢谢你@Patrick Artner的回答,但我仍然有同样的问题,我尝试了你的解决方案,在这里我经历了:Ts=datetime.timedeltahours=0,分钟=0,秒=0,lencell\u sl:for cell\u sl:trans=item[i]Ts+=datetime.timedeltahours=trans.time.hour,分钟=trans.time.minutes,seconds=trans.time.seconds printTs错误:trans=item[i]TypeError:“datetime.datetime”对象不可订阅再次感谢@Patrick Artner您的回答帮助我找到了解决方案,我确实通过您的回答对代码进行了一些更改,最终还是成功了。
import datetime

Ts = datetime.timedelta(hours = 0, minutes = 0, seconds = 0)

print(Ts)

now = datetime.datetime.now()
Ts += datetime.timedelta(hours=now.hour, minutes=now.minute, seconds=now.second)

print(Ts)
0:00:00
10:24:17