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

Pandas导出JSON后如何解析毫秒级时间戳索引为datetime类型

错误原因

Pandas to_json 方法导出时间类型字段时,默认输出毫秒级13位Unix时间戳,而Python标准库 datetime.fromtimestamp() 仅接收秒级10位时间戳作为入参,直接传入13位数值会超出合法范围,触发OSError。

解决方案

方案1:直接转换已有的13位时间戳

转换前先将毫秒级时间戳除以1000转为秒级即可,注意json解析后的时间戳键为字符串类型,需要先转成整型:

单值转换示例

from datetime import datetime
epoch_time_ms = 1629417600000
# 整除1000转为秒级,如需保留毫秒精度可改为 /1000
datetime_time = datetime.fromtimestamp(epoch_time_ms // 1000)

批量转换解析后的字典

converted_data = {
    datetime.fromtimestamp(int(ts_key) // 1000): val
    for ts_key, val in parsed.items()
}

方案2:导出阶段指定时间格式(更规范,避免单位歧义)

在调用 to_json 时指定 date_format="iso",直接导出标准ISO格式的时间字符串,后续转换更稳定,不会出现单位混淆问题:

# 导出时指定ISO时间格式
result = df.to_json(orient="index", date_format="iso")
parsed = json.loads(result)

# 直接用ISO格式转换
converted_data = {
    datetime.fromisoformat(ts_key): val
    for ts_key, val in parsed.items()
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:21:00