我有一个谷歌数据存储实体(“用户”),当前为空,并且从代码中我试图插入一条新记录。在插入新记录之前,我正在验证该记录是否存在,但由于某种原因,我从 query.fetch() 获得了不同的输出。我期望 query.fetch() 结果为空,但下面是它的输出。我对此不太确定
result <google.cloud.datastore.query.Iterator object at 0x7fee71d13ef0>
完整代码:
def create(self):
logger.log_text("create user request ")
logger.log_text('email {}'.format(self.email))
query = self.ds.query(kind=self.__tablename__)
query.add_filter('email', '=', self.email)
result = query.fetch()
if result:
logger.log_text('result {}'.format(result))
最佳答案
我相信查询将始终返回迭代器。请参阅 google.cloud.datastore.query.Iterator 上的此页面。迭代器允许您单步执行结果。这包括没有结果的查询响应。看起来名为 num_results
的属性可能对我们有值(value),因为它似乎返回可迭代的结果计数。如果 num_results
为 0,则查询未返回任何项目。
关于python - Google Datastore Client query.fetch() 返回预期空结果的迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52631422/