Создание пользовательского класса JSON serializable

У меня есть пользовательский класс, пусть вызов является классом ObjectA(), и у него есть куча функций, свойство и т.д., и я хочу сериализовать объект, используя стандартную библиотеку json в python, что мне нужно реализовать, чтобы этот объект сериализовался в JSON без написания пользовательского кодировщика?

Спасибо

+6
15 апр. '14 в 15:47
источник поделиться
1 ответ

Подкласс json.JSONEncoder, а затем создайте подходящий словарь или массив.

См. "Расширение JSONEncoder" позади эта ссылка

Вот так:

>>> class A:  pass
... 
>>> a = A()
>>> a.foo = "bar"
>>> import json
>>> 
>>> class MyEncoder(json.JSONEncoder):
...    def default(self, obj):
...       if isinstance(obj, A): 
...          return { "foo" : obj.foo }
...       return json.JSONEncoder.default(self, obj)
... 
>>> json.dumps(a, cls=MyEncoder)
'{"foo": "bar"}'
+6
15 апр. '14 в 15:57
источник

Посмотрите другие вопросы по меткам или Задайте вопрос