如何检查过滤后的请求是否返回空数组?

时间:2018-07-29 23:56:41

标签: python rethinkdb rethinkdb-python

我大约一年半前开始使用Javascript,但是大约一周前就开始使用Python,因此我仍然是一个初学者。因此,我试图确定用户是否已经存储在用户表中,如果不是,则将其添加到用户表中,如果是则跳过。

import rethinkdb as r


r.db('bot').table('users').filter(r.row["id"] == "253544423110082589").run()

此代码应返回

<rethinkdb.net.DefaultCursor object at 0x03DAAE10> (done streaming):
[
]

那么我该如何检查它是否为空?

我尝试了

if not r.db('bot').table('users').filter(r.row["id"] == "253544423110082589").run():
    # add user to table
else:
    continue

,但即使用户不在表中,该操作也会继续。所以,请告诉我我在做错什么,以及如何才能真正使它正常工作

2 个答案:

答案 0 :(得分:1)

the docs中使用isEmpty

r.db('bot').table('users').filter(r.row["id"] == "253544423110082589").is_empty().run(conn)

您也可以使用count

r.db('bot').table('users').filter(r.row["id"] == "253544423110082589").count().run(conn)

答案 1 :(得分:0)

我对您所使用的库不熟悉,但是您可以检查表的长度。

它可能看起来像这样:

if len(table) == 0:
    # add user to table
else:
    continue