Python Appengine使用JSON初始化ndb模型对象

时间:2014-09-25 17:09:33

标签: android python json google-app-engine

我已经看过无数关于如何使用to_dict()和json.dumps()将ndb.Model对象编码为json的示例,但是找不到一个关于如何对其进行编码的实例。相反:将json.loads()的结果解码为ndb.Model对象。

这是我尝试的但是没有效果:

def post(self):
    payload = json.loads(self.request.body)
    assert isinstance(payload, dict), 'Bad payload'

    myCustomClass = CustomClass(**payload)

请注意,尽管CustomClass继承自ndb.Model且具有简单属性(StringProperty,IntegerProperty ...),但它仍继承自其他类并具有重复属性(如果它改变了答案的任何内容......虽然我希望收到一个不依赖于课堂内部的一般答案。

感谢。

1 个答案:

答案 0 :(得分:2)

请参阅populate

不确定继承问题(你可以提供一个更具体的例子),但你会有这样的事情:

def post(self):
    payload = json.loads(self.request.body)
    assert isinstance(payload, dict), 'Bad payload'

    myCustomClass = CustomClass()
    myCustomClass.populate(**payload)
    myCustomClass.put()

另外,请注意,您应该首先验证用户提交的数据,而不是立即盲目存储所有数据。