Python pickle错误。UnicodeDecodeError

问题描述 投票:79回答:2

我想用Textblob做一些文本分类。我先用pickle训练模型并将其序列化,如下图所示。

import pickle
from textblob.classifiers import NaiveBayesClassifier

with open('sample.csv', 'r') as fp:
     cl = NaiveBayesClassifier(fp, format="csv")

f = open('sample_classifier.pickle', 'wb')
pickle.dump(cl, f)
f.close()

而当我尝试运行这个文件时。

import pickle
f = open('sample_classifier.pickle', encoding="utf8")
cl = pickle.load(f)    
f.close()

我得到了这样一个错误:"UnicodeDecodeError:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte.

以下是我的sample.csv的内容。

我的SQL完全不能正常工作 这是一个错误的选择,SQL

我有问题。请立即回复,支持

我这是哪里出了问题?请帮助我。

python pickle textblob
2个回答
138
投票

通过选择 openwb你选择用原始二进制写法。 没有应用字符编码。

因此,要读取这个文件,你应该简单地 open 顺势 rb.


27
投票

我想你应该把文件打开为

f = open('sample_classifier.pickle', 'rb')
cl = pickle.load(f)   

你应该不用解密。 pickle.load 会给你一个你所保存的东西的精确拷贝。 在这一点上,你,应该能够与 cl 就像你刚刚创建它一样。

© www.soinside.com 2019 - 2024. All rights reserved.