python - 如何修复“'TypeError: datetime.time' 对象不可下标”
问题描述
我正在提取数据时间并计算结果,但 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' object is not subscriptable
解决方案
您trans
或您的item
值都是datetime.time对象的 - 这就是错误告诉您的内容:
TypeError:“datetime.time”对象不可下标
您不能像 fe 字符串一样对它们进行切片/下标:
trans = item[i] # <-- this is a "subscription" ... either item is a datetime Ts = Ts + datetime.timedelta(hours= int(str(trans[:2])), # or trans is one minutes= int(str(trans[3:-3])), seconds= int(str(trans[6:])))
请改用datetime.time提供的小时、分钟、秒属性:
Ts = Ts + datetime.timedelta(hours = trans.time.hour,
minutes = trans.time.minute,
seconds = trans.time.second)
如果您不确定它是哪一种,请使用它print(type(item))
来查看它是什么类型。
具有一个日期时间值的完整示例:
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
推荐阅读
- wpf - WPF 自定义窗口
- unit-testing - 无法在小部件测试中访问颤振 UI 元素
- python - 在 Python 中将计数器字典绘制为多条形图
- c# - 是否可以在 Dotnet Core 3.x 应用程序中对 RavenDB 3.5.x 进行单元测试?
- flash - 如何在 Adobe Air 上运行现有的 SWF 文件
- php - 尝试将 json 编码数组从 php 发送到 js 文件,“输入意外结束”
- c# - 将鉴别器列映射到类属性实体框架核心 2.2.0
- android - 在构建到 Android 应用程序后,用于 tealium 的 utag 被转换为 ionic 3 中的 file://
- ssas - SSAS DAX 查询....如何根据与计算条件匹配的属性值显示总计
- javascript - 从 python 中的 HTTP POST 请求解码图像