Never mind I found my problem, I was using "load" instead of "load*s*"
On Fri, Jan 20, 2012 at 2:48 PM, Bruce Wade <bruce.w...@gmail.com> wrote: > Hi I am trying to use cPickle to store data in the database when I try to > load the pickle data later I am getting the following error: > > Traceback (most recent call last): > > File > "/home/bruce/Development/bossteam_dev/projects/yaw/gluon/restricted.py", line > 204, in restricted > > exec ccode in environment > > File > "/home/bruce/Development/bossteam_dev/projects/yaw/applications/welcome/controllers/adviewer.py" > <http://127.0.0.1:8000/admin/edit/welcome/controllers/adviewer.py>, line > 134, in <module> > > File "/home/bruce/Development/bossteam_dev/projects/yaw/gluon/globals.py", > line 172, in <lambda> > > self._caller = lambda f: f() > > File "/home/bruce/Development/bossteam_dev/projects/yaw/gluon/tools.py", > line 2533, in f > > return action(*a, **b) > > File > "/home/bruce/Development/bossteam_dev/projects/yaw/applications/welcome/controllers/adviewer.py" > <http://127.0.0.1:8000/admin/edit/welcome/controllers/adviewer.py>, line 61, > in viewads > > ads_to_view = adviewer_engine.getUrls() > > File "applications/welcome/modules/adviewer_api.py", line 43, in getUrls > > ads_viewed = cPickle.load(today_ads.adsviewed) > TypeError: argument must have 'read' and 'readline' attributes > > > Here is my code for storing: > > ads = [] > random_ads = self._getRandomUrls([]) > if random_ads: > for index, url in enumerate(random_ads): > ads.append({ > 'index': index, > 'id': url['id'], > 'url': url['url'], > 'valid': '', > 'suburlcount': '', > 'viewcanceled': '', > 'timestart': '', > 'timeend': '', > 'rating': '' > }) > ads_to_view = cPickle.dumps(ads) > > # Create todays ads to view > self.db.viewedads.insert(member_id=member, date=date, > adsviewed=ads_to_view) > > Now when I try to use cPickle.loads() that is where I get the error above: > > today_ads = self.db(self.db.viewedads.member_id == member, date == > date).select().first()ads_viewed = cPickle.load(today_ads.adsviewed) > > print today_ads.adsviewed # This works as expected shows the cPickle data > > > Is there something I am missing to get this to work with web2py? > > > -- > -- > Regards, > Bruce Wade > http://ca.linkedin.com/in/brucelwade > http://www.wadecybertech.com > http://www.warplydesigned.com > http://www.fitnessfriendsfinder.com > -- -- Regards, Bruce Wade http://ca.linkedin.com/in/brucelwade http://www.wadecybertech.com http://www.warplydesigned.com http://www.fitnessfriendsfinder.com