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

使用pandas to_json导出DataFrame时如何保留微秒?

解决pandas to_json丢失微秒的问题

默认情况下pandas的to_json方法会把datetime类型的精度截断到毫秒,要保留微秒可以用以下两种方案:

方案一:将时间列转为带微秒的字符串导出

把datetime列格式化为包含微秒的字符串后再导出,读取时再转换回datetime类型:

import pandas as pd
from datetime import datetime as dt

# 构造测试数据
df = pd.DataFrame( { 'timestamp' : [dt.strptime('2023-09-19 10:10:10.111222', '%Y-%m-%d %H:%M:%S.%f')] } )
print("原始数据:")
print(df)

# 将时间列转为带微秒的字符串
df['timestamp'] = df['timestamp'].dt.strftime('%Y-%m-%d %H:%M:%S.%f')
# 导出JSON
df.to_json('data.json', orient='records')

# 读取并转换回datetime类型
df1 = pd.read_json('data.json')
df1['timestamp'] = pd.to_datetime(df1['timestamp'], format='%Y-%m-%d %H:%M:%S.%f')
print("\n读取后的数据:")
print(df1)

方案二:使用date_format='iso'参数直接导出

利用pandas支持的ISO日期格式序列化,该格式原生支持微秒精度:

import pandas as pd
from datetime import datetime as dt

# 构造测试数据
df = pd.DataFrame( { 'timestamp' : [dt.strptime('2023-09-19 10:10:10.111222', '%Y-%m-%d %H:%M:%S.%f')] } )
print("原始数据:")
print(df)

# 导出时指定date_format为iso,保留微秒
df.to_json('data.json', date_format='iso')

# 读取时自动转换日期类型
df1 = pd.read_json('data.json', convert_dates=['timestamp'])
print("\n读取后的数据:")
print(df1)

两种方案都能让导出的JSON保留完整的微秒信息,读取后可以恢复原始的datetime精度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:42:41