NameError:名称'd'在Python列表理解中未定义

问题描述 投票:0回答:1

[尝试在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'}]
python-3.x list-comprehension nameerror
1个回答
0
投票

在您的理解力中,您写的位置

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

您应该有if,而不是and

正如您目前所掌握的那样,理解力正在试图理解该表达式

date_settings and d['date'] != None

作为d应该迭代的内容,这就是为什么它不知道d在这里应该表示什么的原因。

© www.soinside.com 2019 - 2024. All rights reserved.