我正在使用SQLAlchemy填充数据库,并且经常需要在处理之前检查数据库中是否存在orm对象。这可能是一个非常规的问题,但是我发现自己经常遇到这种模式:
my_object = session.query(SomeObject).filter(some_fiter).first()
if my_object: # Mostly in databases...
# Juchee it exists
# process
else:
# It does not exist. :-(
my_object = SomeObject()
# process
我 梦 of 以求 的是:
if my_object = session.query(someObject).blabla.first():
# if my_object is None this scope is left alone
# if my_object is not None I can work with my_object here...
我知道这种语法是错误的,但我想解释一下此示例的含义。任何等效的方式都会让我高兴。
这种模式是否有优雅的python方法?这个问题不仅针对SQLAlchemy,而且针对每个等效方案。
闭上眼睛打“发表您的问题”,并真诚地等待聪明的人和pythonistas追捕我,询问可能不适当的问题 ;-)
您想要执行一个现有查询以提高效率
(ret, ), = Session.query(exists().where(SomeObject.field==value))
Mike
Bayer在他的博客文章中对此进行了解释:http :
//techspot.zzzeek.org/2008/09/09/selecting-
booleans/
如果不希望使用元组,则可以使用标量:
ret = Session.query(exists().where(SomeObject.field==value)).scalar()
问题内容: 嗨,我正在使用Java Optional。我看到Optional有一个ifPresent方法。 而不是做类似的事情: 我想知道如何使用Optional.ifPresent()将值分配给变量。 我正在尝试类似的东西: 我需要lambda函数来获取分配给该变量的值是什么? 问题答案: 您可以使用#orElse或orElseThrow来提高代码的可读性。
问题内容: 我想检查一个变量是否存在。现在我正在做这样的事情: 是否有其他方法无一例外? 问题答案: 要检查是否存在局部变量: 要检查是否存在全局变量: 要检查对象是否具有属性:
我有一个Typescript项目,我需要知道变量的值是否在对象的任何属性中。 这就是目标: 这是声明的变量: 以下是我检查它是否存在的步骤: 问题:做三次检查会在其他机器上运行三次 我需要知道的是,如何检查它是否存在,而不需要迭代对象,如果它不存在,只需操作一次
问题内容: 我正在学习Python,现在我正在讨论范围和非本地语句。在某个时候,我以为我想通了一切,但是后来非本地人来了,把一切都分解了。 示例1: 运行它自然会失败。 更有趣的是)没有执行。为什么?。 我的理解是,封闭不执行之前执行,并嵌套时,才会执行被调用。我很迷惑… 好,让我们尝试示例2: Aaand …运行良好。哇!!它是如何解决的?功能永远不会执行! 我的理解是,非本地语句是在运行时评估
这是我目前所拥有的,但它不起作用。如何连接所有内容?我认为问题在于逗号。
问题内容: 在Python中,可以分割字符串并将其分配给变量: 但在Go中似乎无效: 问题: 如何在一个步骤中拆分字符串并分配值? 问题答案: 例如两个步骤 输出: 例如一个步骤 输出: