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

Python列表推导式转换Numpy数组时间戳为datetime的语法错误修复

错误原因
  • 列表推导式结构错位:标准列表推导式结构为[输出值表达式 for 迭代变量 in 可迭代对象 <if 可选筛选条件>],你的代码把时间转换的输出表达式错误放到了if筛选条件的位置,两种逻辑混写直接触发语法错误。
  • 筛选条件逻辑错误:原代码if ts > 0是对整个numpy数组做判断,而非判断单个迭代的时间戳x,就算语法修正后也无法实现按单个值过滤的需求。
修正后的代码
from datetime import datetime
import numpy as np 

ts = np.array([1628997394, 1628997444, 1628997602, 1629006977, 1629007021])
# 若出现"year is out of range"报错,说明时间戳单位为毫秒,先执行下行注释的代码转换单位
# ts /= 1000
dates = [datetime.utcfromtimestamp(x).strftime('%Y-%m-%d %H:%M:%S') for x in ts if x > 0]
print(dates)
输出结果
['2021-08-15 03:16:34', '2021-08-15 03:17:24', '2021-08-15 03:20:02', '2021-08-15 05:56:17', '2021-08-15 05:57:01']

注:输出结果的元素为字符串类型,默认带引号,若仅需要纯文本展示可单独遍历列表打印元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:51:04