Почему Дельта времени Python datetime не найдена?

Я пытаюсь сделать массив дат в формате ммддгггг. Даты начнутся в текущий день, а затем уйдут на две недели в будущее. Так что все зависит от даты начала. Когда я запускаю свой код, я получаю сообщение об ошибке:

Traceback (most recent call last):
File "timeTest.py", line 8, in <module>
day = datetime.timedelta(days=i)
AttributeError: type object 'datetime.datetime' has no attribute 'timedelta'

Я не уверен, почему это происходит, потому что после поиска в Интернете, я заметил, что люди с timedelta таким образом.

вот мой код:

import time
from datetime import datetime, date, time, timedelta

dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
    day = today + datetime.timedelta(days=i)
    print day

3 ответов


import time
from datetime import datetime, date, time, timedelta

dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
    day = today + datetime.timedelta(days=i)
    print day

ошибка, которую вы получаете, говорит, что datetime нет атрибута timedelta. Это происходит, потому что вы импортировали из datetime конкретные вещи. Для того, чтобы получить доступ timedelta Теперь вы типа timedelta вместо datetime.timedelta.

import time
from datetime import datetime, date, time, timedelta

dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
    day = today + timedelta(days=i)
    print day

таким образом, ваш код должен работать правильно. Кроме того, обратите более пристальное внимание на сообщения об ошибках и постарайтесь внимательно их прочитать. Если вы достаточно сосредоточены, вы часто можете разобраться в проблеме, основываясь на них самостоятельно.


вы уже импортировали timedelta. Вам не нужно обращаться к нему через datetime.

import time
from datetime import datetime, date, time, timedelta

dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
    day = today + timedelta(days=i)
    print day

метод, который вы хотите назвать это datetime.timedelta, видел как здесь. datetime модуль, содержащий timedelta.

если вы посмотрите на свой import строку:

from datetime import datetime, date, time, timedelta

...вы увидите, что импортируете datetime класс С datetime модуль. Итак, когда вы звоните datetime.timedelta, вы на самом деле вызов datetime.datetime.timedelta, которого не существует.