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(キー、**ctx_options)

渡されたキーのシーケンスによって識別されるエンティティを非同期にフェッチします。

引数

keys
 -Sequence of keys

**ctx_options 
 -Context options 

Future オブジェクトのリストを返します。それぞれの Future の結果は Model インスタンスか、キーが見つからなかった場合は None です。

于 2012-10-31T02:58:21.977 に答える