Pythonベース-pickleモジュールを使用してデータエラーを報告する解決方法

2009 ワード

#     
TypeError: write() argument must be str, not bytes


#     
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 0: illegal multibyte sequence

ソリューション:
def storeTree(inputTree, fielname):
    import pickle
    #     ,   'wb'
    fw = open(fielname, 'wb')
    pickle.dump(inputTree, fw)
    fw.close()

def grabTree(filename):
    import pickle
     #     ,   'rb'
    fr = open(filename, 'rb')
    fr = open(filename)
    return pickle.load(fr)

storeTree(myTree, 'classifierStorage.txt')
print(grabTree('classifierStorage.txt'))

出力:
{'no surfacing': {0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}}

Process finished with exit code 0