What I am doing wrong:
class A(collections.OrderedDict):
def __init__(self,*largs,**kwargs):
super(A,self).__init__(*largs,**kwargs);
def __reduce__(self):
return super(A,self).__reduce__()
dt = collections.OrderedDict([(1,3),(34,2)]) # pickles fine
d=A([(1,3),(34,2)]) # pickles fine
js=pickle.dumps([d,dt])
print(js)
temp = pickle.loads(js)
print(temp)
# but it does not jsonpickle.decode ????
js=jsonpickle.encode(d)
print(js)
temp = jsonpickle.decode(js)
print(temp)
Obvisouly there is a special Handler which I should have registered for my class:
jsonpickle.handlers.register(A, handlers.OrderedDictReduceHandler)
then it works