我是Python新手并探索SQLAlchemy。这是我的代码
class Test(Base):
__tablename__ = 'test'
__public__ = ('my_id', 'name')
my_id = Column(Integer, primary_key=True)
name = Column(String)
def __init__(self, id, name):
self.my_id = id
self.name = name
def __repr__(self):
return "<User('%d','%s')>" % (self.id, self.name)
@property
def json(self):
return to_json(self, self.__class__)
users= cess.query(Test.my_id, Test.name).order_by(Test.my_id).distinct().all()
for c in users:
print c.json
但我收到错误AttributeError: 'KeyedTuple' object has no attribute 'json'
我做错了什么。
亲切的问候
答案 0 :(得分:6)
您的查询是
cess.query(Test.my_id, Test.name)
因此您不会因此获得Test
个实例。这意味着您的结果不具有json
属性。相反,您会获得KeyedTuple
个带有您请求的属性的元组,即my_id
和name
。要使其工作,您可以将查询更改为
cess.query(Test)