Python:AttributeError:'str'对象没有属性'datetime'
Posted
技术标签:
【中文标题】Python:AttributeError:\'str\'对象没有属性\'datetime\'【英文标题】:Python: AttributeError: 'str' object has no attribute 'datetime'Python:AttributeError:'str'对象没有属性'datetime' 【发布时间】:2016-06-26 21:43:51 【问题描述】:我正在使用此代码:
def calcDateDifferenceInMinutes(end_date,start_date):
fmt = '%Y-%m-%d %H:%M:%S'
start_date_dt = datetime.strptime(start_date, fmt)
end_date_dt = datetime.strptime(end_date, fmt)
# convert to unix timestamp
start_date_ts = time.mktime(start_date_dt.timetuple())
end_date_ts = time.mktime(end_date_dt.timetuple())
# they are now in seconds, subtract and then divide by 60 to get minutes.
return (int(end_date_ts-start_date_ts) / 60)
来自这个问题:*** question
但我收到了这条消息:
AttributeError: 'str' 对象没有属性 'datetime'
我已经查看了类似的问题,但除了执行以下操作之外没有其他选择:
start_date_dt = datetime.datetime.strptime(start_date, fmt)
这是完整的跟踪:
> Traceback (most recent call last): File "tabbed_all_cols.py", line
> 156, in <module>
> trip_calculated_duration = calcDateDifferenceInMinutes (end_datetime,start_datetime) File "tabbed_all_cols.py", line 41, in
> calcDateDifferenceInMinutes
> start_date_dt = datetime.datetime.strptime(start_date, fmt) AttributeError: 'str' object has no attribute 'datetime'
第 41 行是:
start_date_dt = datetime.datetime.strptime(start_date, fmt)
有人能解释一下我错过了什么吗?
新更新:我仍在努力解决这个问题。我看到那个版本很重要。我正在使用 2.7 版并正在导入日期时间。
我不认为我将字符串日期设置回字符串,这是我认为人们在下面建议的。
谢谢
【问题讨论】:
上游某处,你一定做过datetime = "some string"
你的标题和你的问题有不同的错误信息。是哪个?
大家好:这是对方法的调用:duration = calcDateDifferenceInMinutes (tend_datetime,start_datetime)。我将这些作为字符串传递。
请显示完整的堆栈跟踪。它会告诉你哪一行有错误
'@zondo - 是的,我已经更新了我的标题以反映我遇到的错误。感谢您了解这一点。
【参考方案1】:
当您收到类似<str> object has no attribute X
的错误时,这意味着您在某处正在执行类似some_object.X
的操作。这也意味着some_object
是一个字符串。由于它没有属性,这通常意味着您假设 some_object
是别的东西。
完整的错误消息将告诉您是哪条线路导致了问题。在你的情况下,是这样的:
start_date_dt = datetime.datetime.strptime(start_date, fmt) AttributeError: 'str' object has no attribute 'datetime'
这里唯一访问datetime
的对象是第一个datetime
。这意味着第一个 datetime
是一个字符串,您假设它代表一个模块。
如果您要打印出datetime
(例如:print("datetime is:", datetime)
),我相信您会看到一个字符串。
这意味着您在代码中的其他地方通过将datetime
设置为字符串来覆盖它(例如:datetime = "some string"
)
【讨论】:
在我的例子中,这是因为我不明智地创建了另一个名为“时间”的变量,其中包含我从 GPS 单元获取的当前时间。代码认为我试图访问这个变量(它是一个字符串),而不是时间类。以上是关于Python:AttributeError:'str'对象没有属性'datetime'的主要内容,如果未能解决你的问题,请参考以下文章
wxFormBuilder AttributeError: module 'wx' has no attribute 'ST_SIZEGRIP'
Python - AttributeError:模块'mysql'没有属性'connector'