1

我正在使用 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'}, ...

它去掉了“代码”和“光标”。我怎样才能得到“光标”?

4

2 回答 2

1

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

非常简单!

于 2011-02-04T02:05:09.063 回答
0

在 Freebase Python 库的 1.0.8 版本中,可能意外地放弃了对 MQL 信封参数的支持。

如果不需要 MQL 扩展,您可以删除参数extended=True参数并使用mqlreaditer(query).

如果您需要 MQL 扩展(或其他信封参数),您将不得不回退到 1.0.6,直到有人解决了问题并发布了新版本。

 sudo easy_install freebase==1.0.6
于 2012-02-03T21:36:13.937 回答