簡體   English   中英

如何使用Flask在Python中使用JSON返回單個對象

[英]How do I return single object with JSON in Python with 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,
        }

解決了:

return jsonify(MenuItem=item.serialize)

我還通過創建一個列表並傳遞該列表來解決它,但是它比使用serialize:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM