gpt4 book ai didi

python - 使用查询迭代器在 python 中查询应用程序引擎的游标

转载 作者:太空宇宙 更新时间:2023-11-03 18:38:18 24 4
gpt4 key购买 nike

我想使用分页而不是通过调用,

greets, next_curs, more = Greeting.query().fetch_page(10, start_cursor=curs)

但是通过使用查询迭代器。因为这样我就可以使用小线程将所有连续的“获取”组合在一起,如 https://developers.google.com/appengine/docs/python/ndb/async#tasklets 中所述。

现在在我的代码中,事情看起来像,

class Book(ndb.Model):
author = ndb.KeyProperty('a', kind=User, required=True)

author_key = ndb.Key(urlsafe=user_id)
books_query=Book.query(Book.author == author_key)
@ndb.tasklet
def callback(book):
author = yield book.author.get_async()
raise ndb.Return(book, author)

q_option = {'limit' : 2, 'produce_cursors' : True }
outputs = books_query.map(callback, **q_option)

不确定哪里出了问题,但如果我尝试这样做,

books_query.iter().cursor_before() 

books_query.iter().cursor_after()

它失败并显示以下跟踪,

raise datastore_errors.BadArgumentError('There is no cursor currently')
BadArgumentError: There is no cursor currently

任何使用查询迭代器和带游标的微线程的详细示例都将非常有助于我理解这一点。

最佳答案

books_query.iter().cursor_after() 依赖于 .iter(**q_options),后者使用自己的参数创建一个 QueryIterator。

问题是无法访问 .map() 使用的内部迭代器。

请参阅 Guido 对有关该主题的相关问题的回答:https://stackoverflow.com/a/14150081/2380615

关于python - 使用查询迭代器在 python 中查询应用程序引擎的游标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21118732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com