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

如何使用write_csv保存时间数据到CSV文件且不含T/Z字符?

解决CSV保存时间格式被转为ISO8601带T/Z的问题

核心问题在于你直接写入了datetime类型对象,write_csv(或相关CSV写入工具)会默认将其序列化为ISO8601标准格式(含T分隔符和Z时区标识)。要保留YYYY-MM-DD HH:MM:SS格式,必须手动将时间对象转为指定格式的字符串后再保存。

情况1:使用Pandas的to_csv(常见场景)

如果你的数据存在DataFrame中,先把datetime列转为目标格式的字符串:

# 将datetime列转为指定格式的字符串
df['your_time_column'] = df['your_time_column'].dt.strftime('%Y-%m-%d %H:%M:%S')
# 保存CSV
df.to_csv('output.csv', index=False)

情况2:使用Python标准库csv模块

遍历数据时,检查并转换datetime对象为字符串:

import csv
from datetime import datetime

# 示例数据,包含datetime对象
data = [
    ["id", "time", "value"],
    [1, datetime(2022, 12, 12, 8, 0, 0), "sample1"],
    [2, datetime(2022, 12, 13, 9, 30, 0), "sample2"]
]

with open('output.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    for row in data:
        # 处理每行中的datetime对象,转为目标格式
        processed_row = [
            item.strftime('%Y-%m-%d %H:%M:%S') if isinstance(item, datetime) else item
            for item in row
        ]
        writer.writerow(processed_row)

关键注意点

  • 确保所有时间类型数据在写入前都被转为字符串,避免工具自动序列化
  • 如果你的原始数据已经是字符串格式仍出现问题,检查是否在读取或处理过程中被意外转为datetime对象

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 02:20:45