Объект Datetime возвращает NoneType, когда я пытаюсь сравнить его с другой датой - PullRequest
0 голосов
/ 28 марта 2020

Я получил данные из файла Excel и сохранил их в списке.

Вот фрагмент, как это выглядит в списке (есть тысячи записей):

valid = [[227, 30000, datetime.datetime(2020, 5, 1, 0, 0)], [228, 20000, datetime.datetime(2019, 1, 1, 0, 0)]]

Если я просто распечатываю дату, она возвращает 2020-05-01 00-00-00.

Если я проверяю тип, он возвращает класс datetime.datetime

Теперь я хочу чтобы получить только записи 2020 (вот только очень упрощенный код):

date_to_compare = datetime.datetime.strptime('2020-01-01', '%Y-%m-%d')
for each in valid:
    if each[2] >= date_to_compare:
        print(each)

Я получаю TypeError: '>' не поддерживается между экземплярами 'NoneType' и 'datetime.datetime'

Как-то для сравнения Python видит объект datetime из Excel как NoneType.

Может кто-нибудь помочь, пожалуйста! Спасибо.

1 Ответ

0 голосов
/ 28 марта 2020

Некоторые даты в вашем наборе данных могут иметь неправильный формат или отсутствовать. Чтобы обойти ошибку попробуйте это:

date_to_compare = datetime.datetime.strptime('2020-01-01', '%Y-%m-%d')
for each in valid:
    try:
        if each[2] >= date_to_compare:
            print(each)
    except TypeError:
         print(each)
...