代码之家  ›  专栏  ›  技术社区  ›  NealWalters

如何将json反序列化回从db.model创建的对象

  •  2
  • NealWalters  · 技术社区  · 14 年前

    我想做一些像这家伙问的那样的事情,但是我想反序列化而不是序列化。 How to serialize db.Model objects to json?

    这有图书馆吗?我在运行google app engine,从app engine rest服务器得到一个json字符串( http://code.google.com/p/appengine-rest-server )。

    我问这个问题的方式不同( How to inspect mystery deserialized object in Python ),所以我希望通过与上面这家伙的帖子相反的类比,可以更清楚地知道我想做什么。如果json不起作用,我可以改用xml。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Anentropic    13 年前

    您应该能够通过将反序列化的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返回的dict中的键与字段名完全匹配,我想如果json是从最初的模型自动生成的,它们应该这样做。