我有以下代码:
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
我该如何解决这个问题?
答案 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)])