我正在尝试使用SQLAlchemy提取某些数据。在这种情况下,它用于从“个人档案”类中存储的人物列表中获取年龄。但是,这样做时出现错误,指出:“地图”对象没有属性“查询”。我尝试过其他各种方法,但是仍然会导致各种属性错误,这使我相信我没有正确连接或正确设置它?
profile_db = map(
lambda uri: sessionmaker(bind=create_engine(uri), autoflush=True)(),
[PROFILE_URI]
)
class pull_age(object):
def on_get(self, req, res):
person_age = profile_db.query(Profile).filter(Profile.id == req).first
res.json = {'age of person': person_age}
答案 0 :(得分:0)
AttributeError
的特定原因是您要向map
分配一个profile_db
对象,然后尝试将其用作sqlalchemy Session
实例。 map
对象仅用于对将函数应用于可迭代对象的结果进行迭代,因此自然没有query
方法,该方法会导致异常。要获得结果Session
类,您必须迭代map
对象。您也不会在示例代码中的任何地方实例化会话。
更大的问题是,我不确定您为什么要使用map()
。您似乎试图用一个sessionmaker
来调用uri
一次,那么为什么不直接调用它并传递uri呢? sqlalchemy docs提供了使用sessionmaker
的基本示例。遵循该示例,我相信您可以执行以下操作:
# Create configured session class
Session = sessionmaker(bind=create_engine(CLIENT_URI), autoflush=True)
# Create new session and do query
session = Session()
some_profile = session.query(Profile).filter(Profile.id == req).first()