1

我正在使用带有 NDB 的 Google App Engine。为简洁起见,我删除了很多代码,但保留了基本问题。我收到一个错误'list' object has no attribute 'get_result'

def get_future(keys):
    future = ndb.get_multi_async(keys)
    important_value = ... # get important value
    return {"future" : future, "value" : important_value}

dic = get_future(keys)
future = dic['future']
# error `'list' object has no attribute 'get_result'`
items = future.get_result()

当我应该得到一个未来时,为什么我会得到一个列表?

4

1 回答 1

8

get_multi_async实际上返回一个future对象列表,因此您需要调用.get_result()这些对象。

官方定义

ndb.get_multi_async(keys, **ctx_options)

异步获取由传递的键序列标识的实体。

论据

keys
 -Sequence of keys

**ctx_options 
 -Context options 

返回 Future 对象的列表。如果未找到密钥,则每个未来的结果都是一个模型实例或 None 。

于 2012-10-31T02:58:21.977 回答