我正在使用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