Python 数据存储中缺少属性get';s对象

Python 数据存储中缺少属性get';s对象,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,这是我的GAE数据存储: class Search(ndb.Model): city = ndb.StringProperty() counter = ndb.IntegerProperty(indexed = True) date = ndb.DateTimeProperty(auto_now_add=True) 当我运行这部分代码时: keys = Search.query(Search.city == city).fetch() if (len(keys)==0

这是我的GAE数据存储:

class Search(ndb.Model):
    city = ndb.StringProperty()
    counter = ndb.IntegerProperty(indexed = True)
    date = ndb.DateTimeProperty(auto_now_add=True)
当我运行这部分代码时:

keys = Search.query(Search.city == city).fetch()

if (len(keys)==0):
    luogo = Search(city = city, counter = 1)
    luogo.put()
else:
    for key in keys:
        luogo_1 = key.get()
        luogo_1.counter = luogo_1.counter+1
        luogo_1.put()
我的终端显示在对象搜索属性get中缺少该属性


您知道原因吗?

可能是因为
对象没有
get()
方法:

luogo_1 = key.get()

使用python函数,它对我帮助很大,可能是因为
key
对象没有
get()
方法:

luogo_1 = key.get()
使用python函数,它对我运行有很大帮助

keys=Search.query(Search.city==city.fetch()

获取模型实例的列表

所以

失败,因为实例没有
get
方法

您需要执行以下操作:

keys=Search.query(Search.city==city.fetch(keys\u only=True)

获取键列表,或将
视为实例列表而不是键,并省略
键.get()
调用。

正在运行

keys=Search.query(Search.city==city.fetch()

获取模型实例的列表

所以

失败,因为实例没有
get
方法

您需要执行以下操作:

keys=Search.query(Search.city==city.fetch(keys\u only=True)


获取键列表,或将
keys
视为实例列表而不是键,并省略
key.get()
调用。

但是,如果要获取实体,这有点多余。
Search.query(Search.city==city.fetch()
的结果是一个实体列表,因此您不需要使用键来获取它们。但是,如果目的是获取实体,则这有点多余。
Search.query(Search.city==city.fetch()
的结果是一个实体列表,因此不需要使用键来获取它们。