美文网首页python模块
将python2中的cPickle修改成python3中的pic

将python2中的cPickle修改成python3中的pic

作者: 布口袋_天晴了 | 来源:发表于2019-01-02 10:56 被阅读3次

    为什么有pickle这种操作,并将文件存为.pkl后缀???

    因为pickle可以把字典、列表等结构化数据存到本地文件,读取后返回的还是字典、列表等结构化数据。而file.write、file.read存取的对象是字符串。 读取得到的字符串需要再次加工处理才能转换为字典、列表等,所以pickle的存在是为了方便特殊类型数据的保存。

    报错:ModuleNotFoundError: No module named 'cPickle'
    原因:python2有cPickle,但是在python3下,是没有cPickle的;
    解决办法:将cPickle改为pickle即可,但是这样还是出现编码的问题


    image.png

    报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)错误解
    原因:python3中的pickle需要指定一下编码
    解决办法:见下图


    image.png

    参考文章:
    【1】pickle 在python 2和python 3中兼容性问
    【2】 Pickle incompatibility of numpy arrays between Python 2 and 3

    相关文章

      网友评论

        本文标题:将python2中的cPickle修改成python3中的pic

        本文链接:https://www.haomeiwen.com/subject/doyhlqtx.html