我有一個運行良好在一定的時間,但最終失敗了下面的代碼「最大遞歸深度超過」錯誤:的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' ... –
是的,我知道。問題是我怎樣才能實現這個沒有遞歸? –