我有以下代码试图将对象返回给JSON。我正在尝试将MenuItem对象返回给调用者
#Make JSON API
@app.route('/restaurant/<int:restaurant_id>/menu/<int:menu_id>/JSON')
def restaurantMenuJSONONE(restaurant_id,menu_id):
item = session.query(MenuItem).filter_by(id = menu_id).one()
return jsonify(MenuItems=item)
我得到的错误:
TypeError: <database_setup.MenuItem object at 0xb6071d8c> is not JSON serializable
database_setup.py剪辑
class MenuItem(Base):
__tablename__ = 'menu_item'
name = Column(String(80), nullable=False)
id = Column(Integer, primary_key=True)
description = Column(String(250))
price = Column(String(8))
course = Column(String(250))
restaurant_id = Column(Integer, ForeignKey('restaurant.id'))
restaurant = relationship(Restaurant)
#JSON
@property
def serialize(self):
#return object
return {
'name' : self.name,
'description' : self.description,
'id' : self.id,
'price' : self.price,
'course' : self.course,
}
答案 0 :(得分:2)
解决它:
return jsonify(MenuItem=item.serialize)
我也通过创建列表并传递列表来解决它,但它比使用序列化要多得多:)