Как десериализовать JSON обратно к объектам, созданным из db.Model - PullRequest
2 голосов
/ 15 сентября 2010

Я хочу сделать что-то, как просил этот парень, но я хочу десериализовать вместо сериализации. Как сериализовать объекты db.Model в json?

Есть ли библиотека для этого? Я использую Google App Engine и получаю строку JSON от appengine-rest-server (http://code.google.com/p/appengine-rest-server/).

Я задал вопрос по-другому здесь ( Как проверить загадочный десериализованный объект в Python ), так что я надеюсь, приведя аналогию в обратном направлении к посту вышеупомянутого парня, это будет более понятно что я пытаюсь сделать Если JSON не работает, я могу вместо этого использовать XML.

1 Ответ

2 голосов
/ 07 февраля 2012

Вы должны иметь возможность просто создать экземпляр нужной модели, передав десериализованный JSON в виде kwargs в конструктор.Взгляните на источник SDK в google.appengine.ext.db (__init__.py) > Model.__init__ method

, например, вы можете сделать:

from myapp.models import MyModel

results = '{"firstname": "Neal", "lastname": "Walters"}'
data = json.loads(results)

instance = MyModel(**data)

Это предполагает, что ключи в ответ, которые вы получаете через JSON, точно совпадают с именами полейЯ думаю, что они должны делать, если JSON изначально генерируется автоматически из моделей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...