首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试图在JSON抛出时返回ndb模型:"...is而不是JSON可序列化“

试图在JSON抛出时返回ndb模型:"...is而不是JSON可序列化“
EN

Stack Overflow用户
提问于 2014-04-15 15:12:59
回答 1查看 123关注 0票数 0

我很难将ndb模型返回为JSON。

我有一个游戏课,如下所示:

代码语言:javascript
运行
复制
class Game(ndb.Model):
    gameID = ndb.StringProperty
    gameState = ndb.StringProperty
    playerOne = ndb.StringProperty
    playerTwo = ndb.StringProperty
    def toJSON(self):
        jsondata = {
            "gameID" : self.key.id(),
            "gameState" : self.gameState,
            "playerOne" : self.playerOne,
            "playerTwo" : self.playerTwo
        }
        return json.encode(jsondata)

这似乎工作正常,当使用以下代码创建和存储模型时,它可以工作(我认为)

代码语言:javascript
运行
复制
class gameHandler(webapp2.RequestHandler):
def get(self):
    gameID = self.request.get("gameID")
    gameState = self.request.get("gameState")
    playerOne = self.request.get("playerOne")
    playerTwo = self.request.get("playerTwo")
    game = Game(id=gameID)
    game.gameState = gameState
    game.playerOne = playerOne
    game.playerTwo = playerTwo
    game.put()
    self.response.write(game.toJSON())

在本例中,"self.response.write(game.toJSON())“按需要输出JSON格式的文本,例如:

代码语言:javascript
运行
复制
 {"playerTwo":"AI","gameID":"Test2","playerOne":"Peter","gameState":"dog"}

但是,在下面的类中,我尝试以JSON的形式检索游戏模型,但是它会抛出:

代码语言:javascript
运行
复制
TypeError: <class 'google.appengine.ext.ndb.model.StringProperty'> is not JSON serializable

抛出错误的代码:

代码语言:javascript
运行
复制
class getGameHandler(webapp2.RequestHandler):
def get(self):
    gameID = self.request.get("gameID")
    game = Game.get_by_id(gameID)
    self.response.write(game.toJSON())

我很困惑,因为"game.toJSON()“的两个实例都应该给出相同的结果,不是吗?我的代码中是否犯了一些基本错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-15 15:18:37

语法不正确,需要像这样声明ndb属性

代码语言:javascript
运行
复制
gameID = ndb.StringProperty()
gameState = ndb.StringProperty()
playerOne = ndb.StringProperty()
playerTwo = ndb.StringProperty()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23087816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档