2011-01-29 8 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モジュールは、シーンの裏側でカーソルを照会して追跡し、結果が "false"のカーソルに達するまで要求を返します。

非常に簡単!

0

MQLエンベロープパラメータのサポートは、Freebase Pythonライブラリの1.0.8リリースで誤って削除されていました。

MQL拡張機能が必要ない場合は、パラメータextended=Trueを削除し、mqlreaditer(query)を使用してください。

MQL拡張(またはその他のエンベロープパラメータ)が必要な場合は、誰かが問題を修正して新しいリリースを行うまで、1.0.6に戻す必要があります。

sudo easy_install freebase==1.0.6 
関連する問題