SQLalechemy查询返回对象而不是值

时间:2019-04-02 12:28:30

标签: python sqlalchemy

我想从查询行中获取所有值,但是当我运行以下代码时,它返回一个对象而不是值:

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对象>

1 个答案:

答案 0 :(得分:1)

正在询问对象,就在这里:

session.query(Player_Mapping)

不过,您可以通过返回的对象访问所有字段,例如query.Playerquery.external_source_name

如果要显式获取列而不是对象,则可以使用:

session.query(Player_Mapping.Player, Player_Mapping.external_source_name)
相关问题