$存在于python中

时间:2012-11-22 10:54:55

标签: python list mongodb

我正在遍历数据库,并希望将密钥“number”的变量值添加到列表x中,只有当此密钥存在时。有些文件中没有关键的“数字”。

在mongo里面我会使用$ exists,但我不知道如何在python中做到这一点。我尝试了这个,但它不起作用......

for i in database:
    try:
        x.append(i["number"])
    except NameError:
        break

这不起作用,我相信有一种更优雅的方式......

4 个答案:

答案 0 :(得分:2)

你是否有效地写作 - try / append / except使它有点令人困惑......

x = [i['number'] for i in database if 'number' in i]

答案 1 :(得分:1)

in运算符是测试容器中密钥存在的规范方法:

for i in database:
    if "number" in i:
        x.append(i["number"])

答案 2 :(得分:1)

您已接近想要的内容:不存在的密钥不会NameError,而是KeyError

所以

for i in database:
    try:
        x.append(i["number"])
    except KeyError:
        continue

应该做你想做的事。

答案 3 :(得分:0)

您的实际代码接近您想要的。您只需在except子句中使用continue而不是break。像这样

for i in database:
    try:
        x.append(i["number"])
    except NameError:
        continue