Python报AttributeError: 'str'对象无strftime属性错误如何解决?
错误原因
- 导入别名不统一:你代码中导入语句是
import datetime as date,但后续构造日期时使用的是dt.date(),别名不一致会直接触发未定义变量错误。 - 类型不匹配是核心报错原因:
strftime()是datetime.date类型对象的专属方法,你的两种修改写法都把Data_Fim变成了字符串类型:- 第一种写法中
data_today是调用strftime()得到的字符串,不能直接传入dt.date()构造函数(该构造函数要求传入三个整数类型的年、月、日参数),即便构造不报错,拿到的也不是合法的date对象 - 第二种写法直接把字符串类型的
data_today赋值给Data_Fim,字符串类型本身没有strftime方法,就会抛出你遇到的AttributeError
- 第一种写法中
正确实现方案
不需要做字符串转换的多余操作,直接调用datetime模块内置的date.today()方法,就能直接拿到原生date类型的当日日期,完全匹配原有代码的变量类型要求:
# 统一导入别名,避免和date类名冲突,后续调用保持一致 import datetime as dt Data_inicio = dt.date(2020, 3, 1) # 直接获取当日日期,返回值为dt.date类型,可直接调用strftime方法 Data_Fim = dt.date.today()
修改后Data_inicio和Data_Fim均为合法的datetime.date类型,后续路径拼接时调用strftime()方法不会再触发类型错误。
内容的提问来源于stack exchange,提问作者Eric Alves
相关产品推荐
相关产品推荐

