Python: Jsonpickle

Introdução

Artigo baseado no post de Sidon. E trata de casting de uma classe para o formato json.

Classe Modelo

import jsonpickle
class Foo():
    def test(self):
        return 'bar'
foo = Foo()

Convertendo o obejto em uma string JSON

jfoo = jsonpickle.encode(foo)

Recriando o objeto python a partir da string JSON:

foo2 = jsonpickle.decode(jfoo)

Executando o objeto (a classe) recriado:

foo2.test()
'bar'
Clique aqui para a documentação.

Pickle

Se não for obrigado a usar json, exite a opção do pickle mais seguro em python:

Classe Modelo

import pickle
class Foo():
    def test(self):
        return 'bar'
Serializando:
foo = Foo()
with open('foo.pickle', 'wb') as f:
    pickle.dump(foo, f, pickle.HIGHEST_PROTOCOL)
Lendo do disco para a memoria (Desserializando):
with open('foo.pickle', 'rb') as f:
    foo2 = pickle.load(f)
Executando a classe desserializada:
foo2.test()
'bar'
Clique aqui para a documentação. Referências

https://pt.stackoverflow.com/questions/218451/como-colocar-uma-classe-dentro-de-um-json http://jsonpickle.github.io/ https://docs.python.org/2/library/pickle.html

Comentários