On 5 Jul 2012, at 6:55 AM, adohertyd wrote:
> Me again! I don't know why I am getting this error. The process() function
> takes in a value session.term, processes it, and returns it as a dict type so
> that it can be mapped to URL's in the next function. The results() function
> sends the variable 'term' to 3 different API URL's which all should return
> some json results. The entireweb and blekko results come back fine if I leave
> out the bing call; however, the bing results cause the error 'Dict object has
> no attribute rstrip'. The problem has to be in the way I'm calling the Bing
> API. Would really appreciate some guidance here. Thanks! This is my
> default.py controller
Where is rstrip being called, and on which variable?
One thing: avoid using URL as a variable name. The symbol is globally defined
in web2py as the URL function you're calling in index(). You might be getting
away with it here, but best to use another name.
>
> def index():
> form = FORM('',
> INPUT(_name='query', requires=IS_NOT_EMPTY()),
> INPUT(_type='submit'))
> if form.process().accepted:
> session.term=request.vars.query
> redirect(URL('results'))
> elif form.errors:
> response.flash = 'form has errors'
> else:
> response.flash = 'please fill the form'
> return dict(form=form)
>
> def __process():
> import urllib
> term=session.term
> #do some processing on term
> return dict(term=term)
>
> def results():
> import urllib
> import requests #This is an external library in the site-packages folder
>
> blekko = "http://www.blekko.com/?q=%(term)s+/json&auth=f4c8acf3" %
> __process()
> blekkoresults = urllib.urlopen(blekko).read()
>
> entireweb =
> "http://www.entireweb.com/xmlquery?pz=<mykey>&ip=<myIP>&n=10&of=0&format=json&q=%(term)s"
> %__process()
> entresults = urllib.urlopen(entireweb).read()
>
> URL =
> "https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/Web?Query=%(term)s&$top=50&$format=json"
> API_KEY= 'mykey'
> term = __process()
> r = requests.get(URL % {'term': urllib.quote(term)}, auth=('', API_KEY))
> bingresults = r.json['d']['results']
>
> return blekkoresults, entresults, bingresults
>
>
>
>
>