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

Pandas读取JSON文件时如何将毫秒时间戳转为datetime格式?

解决Pandas读取JSON时日期列变为毫秒时间戳的问题

刚好遇到过类似的场景~你的问题根源在于Pandas默认会把日期类型序列化为毫秒级时间戳存入JSON,读取时不会自动转换回日期格式。这里有两种实用的解决思路:

方法一:写入JSON时直接保存为日期字符串(更省心)

在调用to_json的时候,加上date_format='iso'参数,让日期以ISO格式的字符串保存,这样读取时Pandas可以轻松识别为日期类型:

修改你的代码如下:

from pandas import DataFrame, read_json
from datetime import date
import pandas as pd  # 补充导入,后续转换可能用到

A = {'a': [date(2019,1,1),date(2019,1,2),date(2019,1,2)], 'b': [4,5,6]}
df = DataFrame(A)
print(df)

filename = r'C:\temp\Export_DataFrame.json'
# 写入时指定日期格式为ISO字符串,避免转成时间戳
df.to_json(filename, date_format='iso')

# 读取时指定转换目标列,或者直接用convert_dates=True自动检测
df2 = read_json(filename, convert_dates=['a'])
print(df2)

运行后df2的a列就会是你想要的日期格式啦。

方法二:读取后手动将时间戳转成日期

如果已经生成了带毫秒时间戳的JSON文件,也可以在读取后做转换:

# 先读取原始JSON
df2 = read_json(filename)
# 把毫秒时间戳转成datetime,一定要指定unit='ms'(因为是毫秒级)
df2['a'] = pd.to_datetime(df2['a'], unit='ms')
print(df2)

这里的unit='ms'是关键,要是漏了的话,Pandas会把它当作秒级时间戳处理,结果就会错得离谱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:09:08