解决Python代码中_strptime与datetime模块的AttributeError报错
修复datetime.strptime相关错误的方案
问题根源
你遇到的两个错误本质对应两个问题:
- 第一个错误
module '_strptime' has no attribute '_strptime_datetime':大概率是Python的datetime标准库被本地同名文件干扰,或是环境里的_strptime模块损坏。 - 第二个错误
module 'datetime' has no attribute 'strptime':因为strptime是datetime.datetime类的方法,并非datetime模块直接的属性,直接调用datetime.strptime自然找不到。
具体修复步骤
第一步:排查同名文件
检查项目目录下是否存在名为datetime.py的文件,若有立即改名(比如改成my_datetime_utils.py),否则它会覆盖Python自带的datetime标准库,引发各类异常属性错误。第二步:正确使用strptime方法
两种正确写法任选其一:
写法1:保持原导入方式,用完整路径调用import datetime for sale in sales_data: if sale[0] not in [ret[0] for ret in returns_data]: # 正确调用datetime.datetime下的strptime sale_date = datetime.datetime.strptime(sale[1], "%Y-%m-%d") weekday = sale_date.strftime('%A') weekday_count[weekday] += 1写法2:直接导入datetime类,简化调用
from datetime import datetime for sale in sales_data: if sale[0] not in [ret[0] for ret in returns_data]: sale_date = datetime.strptime(sale[1], "%Y-%m-%d") weekday = sale_date.strftime('%A') weekday_count[weekday] += 1第三步:环境异常应急处理
若排查完同名文件仍报错,可能是Python环境的datetime模块损坏,可尝试重新安装对应版本的Python,或在代码开头手动导入_strptime模块(应急用,不推荐长期这么做):import _strptime import datetime
内容的提问来源于stack exchange,提问作者乐轩耿
相关产品推荐
相关产品推荐

