重新定义DB python句柄空结果
使用RequiredB和python处理空结果的最佳技术是什么。 我尝试了这种方法,但捕捉异常并不令人满意重新定义DB python句柄空结果,python,database,exception-handling,rethinkdb,Python,Database,Exception Handling,Rethinkdb,使用RequiredB和python处理空结果的最佳技术是什么。 我尝试了这种方法,但捕捉异常并不令人满意 @staticmethod def get_by_mail(mail): try: return User( r.table('users').filter({"mail": mail}).limit(1).nth(0).run() ) except RqlRuntimeError: return No
@staticmethod
def get_by_mail(mail):
try:
return User(
r.table('users').filter({"mail": mail}).limit(1).nth(0).run()
)
except RqlRuntimeError:
return None
如果有人尝试过其他技术,我很感兴趣。
谢谢你的帮助。那应该行
r.table('users').filter({"mail": mail}).do( lambda users:
r.branch(
users.count() == 1,
users.nth(0),
None
)
)
您还可以删除第n(0)个光标并检索光标,然后执行以下操作:
user = None
for i in user:
user = i
break # You don't really need to break since there is at most one element
处理此问题的最简单方法可能是通过使用
联合
添加想要返回的元素
r.table('users').filter({"mail": mail}).limit(1).union([{}])[0]
一个有点难看的工作,但它应该做的技巧。我认为我们应该扩展
default
语法来处理这个问题。我将对此提出一个问题。不清楚在rql运行时出错的情况下,您想做什么。我想返回None或空dict{}那么您的方法不令人满意的方式是什么?我想减少模板搜索类似的内容谢谢,我喜欢这一行。谢谢,我也尝试一下