我想从查询行中获取所有值,但是当我运行以下代码时,它返回一个对象而不是值:
Session = sessionmaker()
Session.configure(bind=engine) #
session = Session()
class Player(Base):
__tablename__ = 'player_alc'
id = Column(Integer, Sequence('user_id_seq'), primary_key=True)
name = Column(String(50))
country= Column(String(50))
first_name = Column(String(50))
last_name= Column(String(50))
class Player_Mapping(Base):
__tablename__ = 'player_external_id_mapping_alc'
external_id = Column(String(50), nullable=False, primary_key=True)
external_source_name = Column(String(50), nullable=False, primary_key=True)
id = Column(Integer, ForeignKey('player_alc.id'))
Player = relationship("Player", back_populates="player_mapping")
Player.player_mapping = relationship(
"Player_Mapping", back_populates="Player")
query= session.query(Player_Mapping).filter_by(external_id=external_id, external_source_name=external_source_name).one()
上面的代码为查询返回以下值:
位于0x0000016119E24D30的ORM_classes.Player_Mapping对象>
答案 0 :(得分:1)
您正在询问对象,就在这里:
session.query(Player_Mapping)
不过,您可以通过返回的对象访问所有字段,例如query.Player
或query.external_source_name
。
如果要显式获取列而不是对象,则可以使用:
session.query(Player_Mapping.Player, Player_Mapping.external_source_name)