我的程序大概就是利用shelve建立一个小型的数据库。 我使用python3X很不习惯,于是换回到了python2.7,可是出现了unsupported pickle protocol问题。代码已经修改过。很是郁闷。于是上网查阅
我的 程序大概就是利用shelve建立一个小型的数据库。 我使用python3X很不习惯,于是换回到了python2.7,可是出现了unsupported pickle protocol问题。代码已经修改过。很是郁闷。于是上网查阅pickle protocol是什么协议。原来这是一种将数据转换成二进制流的文本协议。也就是说我在python2.7和python使用的pickle协议版本不同操作数据库。所以出现了冲突。如果要了解pickle更多请点击此处
down vote
Pickle uses different protocols
to convert your data to a binary stream.
In python 2 there are 3 different protocols (
0
,1
,2
) and the default is0
.In python 3 there are 5 different protocols (
0
,1
,2
,3
,4
) and the default is3
如果要解决这个问题,那该怎么办?要么弃用2.7用3.0以上的版本。或者在python中通过改变
pickle.dump(your_object, your_file, protocol)中的protocol参数成一致即可。29 down vote
Pickle uses different protocols
to convert your data to a binary stream.
In python 2 there are 3 different protocols (
0
,1
,2
) and the default is0
.In python 3 there are 5 different protocols (
0
,1
,2
,3
,4
) and the default is3
.