bug原因:Python2 和 3 的字符串兼容问题,数据文件是在Python2下是序列化的,所以使用Python3读取时,需要将‘str’转化为’bytes’。
Python2 中的写法:
# 获取汉字label映射表 def get_label_dict(): f=open('chinese_labels','r') label_dict = pickle.load(f) f.close() return label_dict
Python3 中的写法:
class StrToBytes: def __init__(self, fileobj): self.fileobj = fileobj def read(self, size): return self.fileobj.read(size).encode() def readline(self, size=-1): return self.fileobj.readline(size).encode() # 获取汉字label映射表 def get_label_dict(): with open('chinese_labels', 'r') as f: label_dict = pickle.load(StrToBytes(f)) return label_dict