2011-01-29 26 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 
相關問題