gython
gython

Reputation: 875

'TypeError: 'datetime.datetime' object is not iterable' when trying to compare a list of dates with a single date

I have a nested list like this:

nl = [['a', datetime.datetime(2020, 2, 7, 0, 0)], 
      ['b', datetime.datetime(2020, 2, 7, 0, 0)],
      ['c', datetime.datetime(2020, 2, 5, 0, 0)], 
      ['d', datetime.datetime(2020, 2, 4, 0, 0)] 

And a single date like this:

date_today = datetime.date(2020, 2, 6)

I want to remove all sublists which contain an older date than date_today.

Like this:

date_l = []
for line in nl:
    if line[1] > date_today:
        date_l.append[line]

However I am getting the error:

TypeError: 'datetime.datetime' object is not iterable

How can I solve this?

Upvotes: 0

Views: 859

Answers (1)

Anupam Chaplot
Anupam Chaplot

Reputation: 1316

Use below code

        nl = [['a', datetime.datetime(2020, 2, 7, 0, 0)],
              ['b', datetime.datetime(2020, 2, 7, 0, 0)],
              ['c', datetime.datetime(2020, 2, 5, 0, 0)],
              ['d', datetime.datetime(2020, 2, 4, 0, 0)]]

        date_today = datetime.datetime(2020, 2, 6,0,0)
        date_l = []
        for line in nl:

            if line[1] > date_today:
                date_l.append(line)
        print(date_l)

Result : [['a', datetime.datetime(2020, 2, 7, 0, 0)], ['b', datetime.datetime(2020, 2, 7, 0, 0)]]

Upvotes: 1

Related Questions