其他分享
首页 > 其他分享> > 使用Freebase API时如何从mqlread()获取光标?

使用Freebase API时如何从mqlread()获取光标?

作者:互联网

我正在使用Python-Freebase模块的mqlread().使用以下查询:

query = [{
  "cursor": True,
  "id":     None,
  "type":   "/games/game",
  "mid":    None,
}]

这将返回100个条目,但结果不包括“光标”.如果手动运行查询,则会得到类似以下内容的信息:

{ "code": "/api/status/ok", "cursor": "eNqFj8FqwzAQRD-mF4sisrtaaaWlhP6H8MHYNTUEW8hpKP36KjgU2kvnMoeZ4THjR923qhKS07wpAvR5VZbYBIL9sE76FDGAs-yCA_FISprL_nWUt5tC383L59ukh9llH_TvpL7Y7rYUdZ4CN9iRITB6vTwnAhriCAwAgXGO8Etkz48dicnvy3ptTGO6OwgsBwIfwJNeHpDWowgh_URO63-M0Z7vM0neGZNL3RrihBKFU_uZS2l3sT-9cpIBaRrnOE8JhaAhQL4B9ZFRmg==", "result": [

{
  "id":   "/en/cities_and_knights_of_catan",
  "mid":  "/m/02hq3",
  "type": "/games/game"
},
....

其中包含“光标”.但结果来自:

freebase.mqlread(query, extended=True)

将返回:

[{u'type': u'/games/game', u'id': u'/en/cities_and_knights_of_catan'}, ...

其中去除了“代码”和“光标”.如何获得“光标”?

解决方法:

我发现Freebase-Python模块实际上包括一个为您处理游标的方法.只需调用mqlreaditer(query,extended = true),这将返回一个Python生成器,您可以对其进行迭代.在后台,Freebase模块将查询并跟踪光标,按需返回结果,直到到达“假”光标为止.

很简单!

标签:python,json,freebase,mql
来源: https://codeday.me/bug/20191009/1879945.html