jsonifying模型实例时出错

时间:2015-03-02 10:34:29

标签: python flask sqlalchemy

我有以下代码:

def getRestaurants():    
    restaurant_list = session.query(RESTAURANT).all()
    return jsonify(restaurant_list)


class RESTAURANT(Base):
    __tablename__ = 'RESTAURANT'

    RESTAURANTID = Column(Integer, primary_key=True)
    RESTAURANTNAME = Column(String(50), nullable=False)
    RESTAURANTDESCRIPTION = Column(String(1024))

    def serialize(self):
        return {        
            'RESTAURANTID': self.RESTAURANTID, 
            'RESTAURANTNAME': self.RESTAURANTNAME,
            'RESTAURANTDESCRIPTION': self.RESTAURANTDESCRIPTION        
        }

    def __unicode__(self):
        return self.str

    def __str__(self):        
        return unicode(self).encode('utf-8')

当我致电getRestaurants时,我收到以下错误:

TypeError: cannot convert dictionary update sequence element #0 to a sequence

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

jsonify可以使用任意数量的(key, value)对以及key=value个关键字。您正在传递模型实例列表,而不是一系列对。相反,请使用jsonify(data=restaurant_list)

之类的内容

之后,添加方法serialize不会使模型json可以进行部署。您需要自己调用序列化并将结果传递给jsonify

def getRestaurants():
    return jsonify(data=[r.serialize() for r in session.query(RESTAURANT)])