AttributeError错误:'KeyedTuple'对象没有属性'json'

And*_*Dev 5 python sqlalchemy

我是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
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误AttributeError: 'KeyedTuple' object has no attribute 'json',我做错了什么.

亲切的问候

zaq*_*est 6

你查询是

cess.query(Test.my_id, Test.name)
Run Code Online (Sandbox Code Playgroud)

所以你不会因此得到Test实例.这意味着您json的结果没有财产.相反,你得到KeyedTuple的是带有你要求的属性的元组,即my_idname.要使其工作,您可以将查询更改为

cess.query(Test)
Run Code Online (Sandbox Code Playgroud)