我正在尝试在Flask/Python中jsonify一个SQLAlchemy结果集.
Flask邮件列表建议采用以下方法:http://librelist.com/browser//flask/2011/2/16/jsonify-sqlalchemy-pagination-collection-result/#04a0754b63387f87e59dda564bde426e:
return jsonify(json_list = qryresult)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
TypeError: <flaskext.sqlalchemy.BaseQuery object at 0x102c2df90>
is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
我在这里俯瞰什么?
我发现了这个问题:如何将SqlAlchemy结果序列化为JSON?这看起来非常相似但是我不知道Flask是否有一些魔力使其更容易,如邮件列表帖子所示.
编辑:为了澄清,这就是我的模型
class Rating(db.Model):
__tablename__ = 'rating'
id = db.Column(db.Integer, primary_key=True)
fullurl = db.Column(db.String())
url = db.Column(db.String())
comments = db.Column(db.Text)
overall = db.Column(db.Integer)
shipping = db.Column(db.Integer)
cost = db.Column(db.Integer)
honesty = db.Column(db.Integer)
communication = db.Column(db.Integer)
name = db.Column(db.String())
ipaddr = db.Column(db.String())
date = db.Column(db.String())
def __init__(self, fullurl, url, comments, overall, shipping, cost, honesty, communication, name, ipaddr, date): …Run Code Online (Sandbox Code Playgroud) 我一直在试图弄清楚如何迭代SQLAlchemy模型中定义的列列表.我希望它能为一些模型编写一些序列化和复制方法.我不能只迭代obj.__dict__它,因为它包含很多特定于SA的项目.
任何人都知道如何从以下获取id和desc名称?
class JobStatus(Base):
__tablename__ = 'jobstatus'
id = Column(Integer, primary_key=True)
desc = Column(Unicode(20))
Run Code Online (Sandbox Code Playgroud)
在这个小案例中,我可以轻松创建:
def logme(self):
return {'id': self.id, 'desc': self.desc}
Run Code Online (Sandbox Code Playgroud)
但我更喜欢自动生成的东西dict(对于较大的对象).
谢谢你的帮助.
我想将一个类传递给一个函数,并且不想再次传递该名称.
class TableClass(Base):
__table__ = Table('t1', metadata, autoload=True)
def get_name(TableClass):
print TableClass.GetTableName() # print 't1'
get_name(TableClass)
Run Code Online (Sandbox Code Playgroud)
所以,我用谷歌搜索它,没有答案.