TypeError:无法腌制生成器对象 [英] TypeError: can't pickle generator objects
本文介绍了TypeError:无法腌制生成器对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将某些结果写到泡菜文件上,如下所示:
I am trying to write some result on to pickle file as below:
raw_X = (self.token_ques(text) for text in training_data)
with open('/root/Desktop/classifier_result.pkl', 'wb') as handle:
pickle.dump(raw_X, handle)
错误:
raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle generator objects
任何帮助都是可观的.
推荐答案
当您要腌制数据时不要使用生成器表达式.改用列表推导,或在生成器上调用list()
捕获所有生成的元素以进行酸洗.
Don't use a generator expression when you want to pickle data. Use a list comprehension instead, or call list()
on the generator to capture all generated elements for pickling.
例如,以下工作正常:
raw_X = [self.token_ques(text) for text in training_data]
with open('/root/Desktop/classifier_result.pkl', 'wb') as handle:
pickle.dump(raw_X, handle)
与之一样:
raw_X = (self.token_ques(text) for text in training_data)
with open('/root/Desktop/classifier_result.pkl', 'wb') as handle:
pickle.dump(list(raw_X), handle)
这篇关于TypeError:无法腌制生成器对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文