Google数据存储区客户端query.fetch()返回用于预期空结果的迭代器

时间:2018-10-03 16:10:32

标签: python python-3.x google-app-engine google-cloud-platform google-cloud-datastore

我有一个Google数据存储区实体(“用户”),该实体当前为空,而我尝试插入新记录的代码中。在插入新记录之前,我正在验证记录是否存在,但是由于某种原因,我从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))

1 个答案:

答案 0 :(得分:2)

我相信查询将始终返回迭代器。请参见google.cloud.datastore.query.Iterator上的此页面。迭代器使您可以逐步浏览结果。这包括没有结果的查询响应。似乎名为num_results的属性对我们来说可能很有价值,因为它似乎返回可以迭代的结果数。如果num_results为0,则查询未返回任何项目。