Tengo un programa que obtiene información de otras páginas y las analiza usando BeautifulSoup y Twisted's getPage. Más adelante en el programa, imprimo información que crea el proceso diferido. Actualmente mi programa intenta imprimirlo antes de que el diferido devuelva la información. ¿Cómo puedo hacer que espere?Haciendo que un programa python espere hasta que Twisted deferred devuelva un valor
def twisAmaz(contents): #This parses the page (amazon api xml file)
stonesoup = BeautifulStoneSoup(contents)
if stonesoup.find("mediumimage") == None:
imageurl.append("/images/notfound.png")
else:
imageurl.append(stonesoup.find("mediumimage").url.contents[0])
usedPdata = stonesoup.find("lowestusedprice")
newPdata = stonesoup.find("lowestnewprice")
titledata = stonesoup.find("title")
reviewdata = stonesoup.find("editorialreview")
if stonesoup.find("asin") != None:
asin.append(stonesoup.find("asin").contents[0])
else:
asin.append("None")
reactor.stop()
deferred = dict()
for tmpISBN in isbn: #Go through ISBN numbers and get Amazon API information for each
deferred[(tmpISBN)] = getPage(fetchInfo(tmpISBN))
deferred[(tmpISBN)].addCallback(twisAmaz)
reactor.run()
.....print info on each ISBN
¿de verdad está usando 1 espacio para la sangría ... –
Eso era un problema de formateo aquí, el código real usa la pestaña –