python 中pickle 和 json 都是序列化和反序列化的模块。
关于序列化和反序列化 序列化和反序列化
一般我们这样操作,把一个字符串变成内存中 json 字典格式,反序列化
import json
错误堆栈
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
看到这个错误一般我们以为是脚本的编码不对,会尝试几种办法
- 把文件头 改成utf-8: # -- coding: utf-8 -
- 尝试填参数 load(..., encoding='utf-8')
都不能解决。
这个错误的真正原因是因为 pickle 是二进制的序列化,读文件的时候我们不注意打开模式就会发生编码的错误
- python的读写模式
- 修正
import pickle
with open(filename, 'rb') as f:
pickle.load(f)
网友评论