"Unhandled opcode ''"
greg-leocare opened this issue · comments
I have an error on load
"Unhandled opcode '�'"
This is my nodejs code
let pickled = fs.readFileSync('./py-sample/pickle', {
encoding: 'latin1',
});
try {
jpickle.emulated['src.sample.Sample'] = MyClass;
var unpickled = jpickle.loads(pickled.toString());
return { msg: unpickled };
} catch (e) {
return { e, err: pickled.toString() };
}
This is the python sources
- the class serialized (in directory src/sample.py)
class Sample():
def __init__(self):
self.un = 1
self.deux = 2
self.trois = 3
def sum(self):
return "{}".format(self.un + self.deux + self.trois)
- the serialization code
import pickle
from src.sample import Sample
sample = Sample()
with open('pickle', 'wb') as target:
pickle.dump(sample, target, protocol=2)
as you can see I force the use of the protocole 2
- here the generated pickle file
��csrc.sample
Sample
q�)�q�}q�(X����unq�K�X����deuxq�K�X����troisq�K�ub.
Do you have already see the problem and could you explain where is/are my mistakes ?
@greg-leocare j'essai de dépicklé qqc qui a un 'set' et ça semble ne pas le convertir en simple array (list).
Je vais essayer d'ajouter le support des sets et si ca marche je clonerai ce repo et/ou ferai un pull request
There is no support for unpickling user-defined classes, how would this even work?