我读过的所有答案都显示使用以下代码来确定字段中是否存在 。 :
db.inventory.find( { qty: { $exists: true, $ne: false } } )
我正在寻找有条件检查当前正在检查的文档中具有某个字段/密钥的内容。当然,我尝试过这样的事情:
doc['properties.color'] is None:
print("Property does not exists")
但是我的文件变得更难了。并非我的所有文档都在字段中具有该属性,从而导致错误:
KeyError: u'properties.color'
这就是我循环每个文档时需要条件语句的原因。我希望有人可以提供帮助。
感谢。
答案 0 :(得分:0)
一般认为,pythonic方式是要求宽恕而不是许可。
假设您发布的代码段位于以下上下文中:
if doc['properties.color'] is None:
print("Property does not exists")
else:
# do something with doc['properties.color'], e.g.:
color = doc['properties.color']
如果您要求宽恕而不是许可,则使用您面临的错误而不是反对错误:
try:
# do something with doc['properties.color'], e.g.:
color = doc['properties.color']
except KeyError:
# this would be your `if`-branch from above
# handle this case:
print("Property does not exist")