我正在使用Freebase-Python模塊遍歷數百個結果。使用:如何減慢迭代生成器對象從Web服務中獲取數據?
results = freebase.mqlreaditer(query, extended=True)
我得到一個Python生成器,我可以像這樣遍歷:
for r in results:
#do stuff, like create new object and save to datastore
mqlreaditer()獲取JSON在同一時間產生100。在100這一結果的一個條目是一個簡短的字符串,如:
result:: {u'type': u'/games/game', u'mid': u'/m/0dgf58f', u'key':
{u'namespace': u'/user/pak21/', u'value': u'42617'}}
我遇到一個錯誤本地:
"WARNING 2011-01-29 15:59:48,383 recording.py:365]
Full proto too large to save, cleared variables."
不知道發生了什麼,但我懷疑這只是太多太快,所以我想減慢迭代或將它分解成塊。我不確定發電機是如何工作的或我的選擇是什麼。請注意,這是在Google App Engine上運行的,因此使用本地應用程序引擎啓動程序的Python依賴關係和怪癖也適用。
您能否包含完整的堆棧跟蹤以及觸發它的相關代碼?是否在freebase庫中引發異常?你有沒有檢查圖書館的來源,看看它爲什麼被提出? – 2011-01-30 23:38:46