运行Python代码遇TypeError报错:需类字节对象而非'str'
解决pickle加载文件时的TypeError问题
我看到你运行这段代码时遇到了类型错误:
data_dict = pickle.load( open("../final_project/final_project_dataset.pkl", "r") )
报错信息是:
data_dict = pickle.load( open("../final_project/final_project_dataset.pkl", "r") ) TypeError: a bytes-like object is required, not 'str'
这个问题的根源很明确:pickle模块加载数据时需要文件以二进制模式打开,而你用的是普通的文本读取模式("r"),这就导致pickle试图解析字符串数据,而它需要的是字节对象,所以抛出了这个错误。
解决方法非常直接,只需要把文件打开模式从 "r" 改成 "rb"(代表read binary,二进制读取模式)就行:
data_dict = pickle.load(open("../final_project/final_project_dataset.pkl", "rb"))
这样修改后,pickle就能正确读取文件里的二进制数据,顺利加载出你的字典对象了。如果之后还有其他报错,比如文件找不到之类的,那可能需要检查文件路径是否正确,但当前这个类型错误的问题就这么解决啦。
内容的提问来源于stack exchange,提问作者Jithesh Gopinathan
相关产品推荐
相关产品推荐

