NameError: имя 'd' не определено в понимании списка Python - PullRequest
0 голосов
/ 09 мая 2020

Попытка запустить следующий код в python 3.7:

date_list = [datetime.datetime.strptime(d['date'], '%Y-%m-%d') for d in date_settings and d['date'] != None]

Это результирующая ошибка, может ли кто-нибудь объяснить мне, почему это понимание списка не может видеть свою собственную переменную?

date_list = [datetime.datetime.strptime(d['date'], '%Y-%m-%d') for d in date_settings and d['date'] != None]
NameError: name 'd' is not defined

вот вводимый массив:

[{'date': '2020-05-08', 'changed_at': '2020-05-07T20:35:07.854Z'}, {'date': '2020-05-09', 'changed_at': '2020-05-07T20:35:40.604Z'}, {'date': '2020-05-10', 'changed_at': '2020-05-07T20:35:42.936Z'}]

1 Ответ

1 голос
/ 09 мая 2020

Внутри вашего понимания, где вы написали

for d in date_settings and d['date'] != None

, у вас должно быть if, а не and.

В том виде, в котором вы его сейчас имеете, понимание пытается понять выражение

date_settings and d['date'] != None

как что-то, что d должно проходить через итерацию, поэтому оно не знает, что здесь должно означать d.

...