如何使用Flask

时间:2016-04-03 04:31:07

标签: python json flask

我有以下代码试图将对象返回给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,
        }

1 个答案:

答案 0 :(得分:2)

解决它:

return jsonify(MenuItem=item.serialize)

我也通过创建列表并传递列表来解决它,但它比使用序列化要多得多:)