我正在使用Python-Freebase模块的mqlread()。使用以下查询:
query = [{
"cursor": True,
"id": None,
"type": "/games/game",
"mid": None,
}]
返回100个条目,但结果不包括“cursor”。如果您手动运行查询,则会得到以下内容:
{ "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'}, ...
除去“代码”和“光标”。我怎样才能获得“光标”?
答案 0 :(得分:1)
我发现Freebase-Python模块实际上包含一个为您处理光标的方法。只需调用mqlreaditer(query,extended = true),这将返回一个可以迭代的Python生成器。在幕后,Freebase模块将查询并跟踪光标,按需返回结果,直到达到“假”光标。
很简单!
答案 1 :(得分:0)
在Freebase Python库的1.0.8版本中,MQL包络参数的支持可能被意外删除。
如果不是不需要MQL扩展,您只需删除参数extended=True
参数并使用mqlreaditer(query)
。
如果您需要MQL扩展(或其他信封参数),您必须回退到1.0.6,直到某人修复问题并执行新版本。
sudo easy_install freebase==1.0.6