input_reader 用の新しい Google App Engine MapReduce ライブラリ フィルタで遊んでいます。ndb.Key でフィルタする方法を知りたいです。
この投稿を読んで、フィルタ タプルで datetime、string、int、float を使用しましたが、ndb.Key でフィルタするにはどうすればよいですか?
ndb.Key でフィルタリングしようとすると、次のエラーが発生します。
BadReaderParamsError: Expected Key, got u"Key('Clients', 406)"
またはこのエラー:
TypeError: Key('Clients', 406) is not JSON serializable
ndb.Key オブジェクトと ndb.Key の文字列表現を渡そうとしました。
これが私の2つのフィルタータプルです:
サンプル 1:
input_reader': {
'input_reader': 'mapreduce.input_readers.DatastoreInputReader',
'entity_kind': 'model.Sales',
'filters': [("client","=", ndb.Key('Clients', 406))]
}
サンプル 2:
input_reader': {
'input_reader': 'mapreduce.input_readers.DatastoreInputReader',
'entity_kind': 'model.Sales',
'filters': [("client","=", "%s" % ndb.Key('Clients', 406))]
}