how - pickle python example
ValueError: protocolo pickle no compatible: 3, python2 pickle no puede cargar el archivo volcado por python 3 pickle? (2)
Utilizo Pickle para volcar un archivo en Python 3, y uso Pickle para cargar el archivo en Python 2, aparece ValueError.
Entonces, python 2 pickle no puede cargar el archivo volcado por python 3 pickle?
Si lo quiero? ¿Cómo hacer?
Pickle usa diferentes protocols
para convertir tus datos a una secuencia binaria.
En python 2 hay 3 protocolos diferentes (
0
,1
,2
) y el valor predeterminado es0
.En python 3 hay 5 protocolos diferentes (
0
,1
,2
,3
,4
) y el predeterminado es3
.
Debe especificar en python 3 un protocolo inferior a 3
para poder cargar los datos en python 2. Puede especificar el parámetro de protocol
al invocar pickle.dump
.
Debería escribir los datos en escabeche con un número de protocolo inferior en Python 3. Python 3 introdujo un nuevo protocolo con el número 3
(y lo usa como valor predeterminado), así que vuelva a un valor de 2
que Python 2 pueda leer.
Verifique el parámetro de protocol
en pickle.dump
. El código resultante se verá así.
pickle.dump(your_object, your_file, protocol=2)
No hay un parámetro de protocol
en pickle.load
porque pickle
puede determinar el protocolo del archivo.