[Tutor] [Python 3.5] TypeError: a bytes-like object is required, not 'str' PICKLE
Alan Gauld
alan.gauld at yahoo.co.uk
Fri Apr 7 07:45:11 EDT 2017
Please always send the full error trace not just the last line. The
message is full of useful details which we can't currently see.
On 07/04/17 09:28, Allan Tanaka via Tutor wrote:
> Hi
> I have added b so that it translates into bytes object. save_cPickle part is not problem...
> But i still get an error when coming into load_cPickle for this function:
> Dataset.save_part_features('categorical_counts', Dataset.get_part_features('categorical'))
> although i have defined b in save_cPickle
>
> THE CODE:
> import _pickle as cPickle
> def save_cPickle(filename, data):
> with open(filename, 'wb') as f:
> cPickle.dump(data, f)
>
>
> def load_cPickle(filename):
> with open(filename) as f:
>
> return cPickle.load(f)
>
> class Dataset(object):
>
> part_types = {
> 'id': 'd1',
> 'loss': 'd1',
> }
> parts = part_types.keys()
>
> @classmethod
> def save_part_features(cls, part_name, features):
> save_cPickle('%s/%s-features.pickle' % (cache_dir, part_name), features)
>
> @classmethod
> def get_part_features(cls, part_name):
> return load_cPickle('%s/%s-features.pickle' % (cache_dir, part_name))
Does the class add anything here given it only has two class
attributes and two class methods? If you aren't going to create
instances then a simple module level function is probably as useful.
> Dataset.save_part_features('categorical_counts', Dataset.get_part_features('categorical'))
> Dataset(categorical_counts=train_cat_counts).save('train')
This tries to create an instance of Dataset but there is no matching
init() method...nor is there a save() method. ???
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos
More information about the Tutor
mailing list