title: Making a python program wait until Twisted deferred returns a value
body: <p>I have a program that fetches info from other pages and parses them using BeautifulSoup and Twisted's getPage. Later on in the program I print info that the deferred process creates. Currently my program tries to print it before the differed returns the info. How can I make it wait?</p>
  
  <pre><code>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
  </code></pre>