我正在遍历数据库并希望将键“number”的变量值添加到列表 x 中,前提是该键存在。有些文件没有关键的“数字”。
在 mongo 里面我会使用 $exist,但我不知道如何在 python 中做到这一点。我试过这个,但它不起作用......
for i in database:
try:
x.append(i["number"])
except NameError:
break
这不起作用,我相信还有更优雅的方式......
你在有效地写作吗? try/append/except 让它有点混乱......
x = [i['number'] for i in database if 'number' in i]
in
运算符是测试容器中键是否存在的规范方法:
for i in database:
if "number" in i:
x.append(i["number"])
你接近你想要的:一个不存在的键给出 no NameError
,但是一个KeyError
.
所以
for i in database:
try:
x.append(i["number"])
except KeyError:
continue
应该做你想做的。
您的实际代码接近您想要的。您只需在 except 子句中使用continue
而不是。break
像这样
for i in database:
try:
x.append(i["number"])
except NameError:
continue