2011-01-29 23 views
1

我正在使用Python-Freebase模块的mqlread()。使用以下查询:如何在使用Freebase API时从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'}, ... 

剥离了 “代码” 和 “光标”。我怎样才能得到“光标”?

回答

1

我发现Freebase-Python模块实际上包含了一个照顾你的方法。只要调用mqlreaditer(query,extended = true),就会返回一个可以遍历的Python生成器。在幕后,Freebase模块将查询并跟踪游标,按需返回结果,直到达到“假”游标。

很简单!

0

支持MQL包络参数在Freebase Python库的1.0.8版本中被大概意外地删除了。

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

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

sudo easy_install freebase==1.0.6 
相关问题