我有一个运行良好在一定的时间,但最终失败了下面的代码“最大递归深度超过”错误:的Python:最大递归深度超过误差
def getImg(data):
if data and len(data) > 0:
for entry in data:
print " -- Entry name", entry[‘url’]
# eventually grab an img using the entry[‘url’] data
time.sleep(6)
else:
print “no entry”
offset = offset + 1
queryDb(offset)
def queryDb(offset):
offset = str(offset)
cur.execute("SELECT name FROM mutable OFFSET " + offset + " LIMIT 1");
result = cur.fetchone()
id = result[0]
url="http://localhost:8080/?query=" + id
r=requests.get(url)
getImg(json.loads(r.content), artistName, gid)
queryDb(0)
的代码基本上是遍历数据库表使用递增偏移量。然后它调用getImg
,它将从网站中检索一些图像(如数据中指定的),然后再次使用增加的索引呼叫queryDb
。数据中可能有多个条目,并且网站有一个速率限制(因此是睡眠),所以最好的方法似乎是让循环与每次通话之间的睡眠一起运行,一旦完成,然后再次调用queryDb。
问题是这会导致递归错误。
什么是更好的方法来做到这一点,同时避免递归问题?
queryDB调用GETIMG,然后调用GETIMG和queryDB等永远... – ForceBru
'queryDb'调用'getImg',这调用'queryDb',调用'getImg' ... –
是的,我知道。问题是我怎样才能实现这个没有递归? –