2016-04-03 29 views
0

我有下面的代碼試圖將對象返回給JSON。我試圖給MenuItem對象返回到調用者如何使用JSON在Python中使用JSON返回單個對象

#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

使用json.dumps導入json和返回數據() –

回答

1

與解決它:

return jsonify(MenuItem=item.serialize) 

我也解決了它與b Ÿ創建一個列表並通過列表,但它比使用序列化更多的工作:)

+0

你也可以看看http:// stackoverflow。 com/a/21411576/4620080如果您需要解決此問題的一般方法 – YnkDK

相關問題