jsonifying 模型实例时出错
Error when jsonifying model instances
我有以下代码:
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
我该如何解决这个问题?
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)])
我有以下代码:
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
我该如何解决这个问题?
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)])