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

如何在Python中将datetime对象写入CSV文件?

如何将datetime对象写入CSV文件?

我来帮你解决这个问题!你遇到的两个报错其实都是因为datetime.datetime对象不能直接按字符串的方式处理导致的,咱们一步步来搞定:

首先看第一个报错:'datetime.datetime' object has no attribute 'encode'——这很正常,因为encode是字符串专属的方法,datetime本身不是字符串,自然没有这个属性。

第二个报错TypeError: 'datetime.datetime' object is not callable,大概率是你代码里不小心把某个变量命名成了datetime,覆盖了标准库的datetime模块名,导致后续调用出问题,这个后面可以检查下变量名,先解决写入的核心问题。

正确的处理方式:把datetime转成字符串再写入

CSV Writer只能处理可序列化的类型(比如字符串、数字),所以我们需要先把datetime对象转换成字符串格式,有两种常用方式:

1. 自定义日期时间格式(推荐)

用datetime对象的strftime方法,你可以完全控制输出的格式,比如:

# 按"年-月-日 时:分:秒"的格式输出
csvWriter.writerow([tweet.created_at.strftime('%Y-%m-%d %H:%M:%S'), tweet.user.name.encode('utf-8')])

你可以根据需求调整格式字符串,比如只保留日期用'%Y-%m-%d',如果你的datetime带时区信息,也可以添加对应的格式符。

2. 直接转成默认字符串格式

如果不需要自定义格式,直接用str()把datetime转成字符串就行:

csvWriter.writerow([str(tweet.created_at), tweet.user.name.encode('utf-8')])

这种方式会输出Python默认的datetime字符串,比如2024-05-20 15:30:45,也能满足大部分场景。

另外提一句,如果你用的是Python 3,其实tweet.user.name可能不需要手动encode('utf-8'),因为CSV Writer在Python 3里默认处理字符串,直接写tweet.user.name会更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:12:46