On Tue, Aug 18, 2020, at 5:20 PM, Dale Preston wrote:
> I'm using sqlalchemy 1.3.18. I'm trying to write an app that looks at data
> from an ORM declarative table without necessarily knowing the table
> definition.
>
> What I am looking for is a way to get a single object (row in resultSet),
> having the name of column[1] is "lastname", and having "lastname" as a string
> in memory, how can I get the value of the "lastname" field from the row in
> resultSet?
>
> It's easy if I know in code that the row has a lastname property and I can
> use row.lastname but I want to do something like row["lastname"] or
> row.columns["lastname"] if there's a way.
to get individual columns in the row you query for those columns directly:
row = sess.query(User.lastname).first()
print(row.lastname)
otherwise you can always label a column if you need:
row = sess.query(User.anything.label("lastname")).first()
print(row.lastname)
>
> I'm using reflection to get the columns for the table. Here's some code I
> tried:
>
> class Users(Base):
> __tablename__ = 'users'
> userid = Column(String(80), primary_key=True)
> lastname = Column(String(40), nullable=False)
> firstname = Column(String(40), nullable=False)
> emailaddress = Column(String(80), nullable=False)
>
> def ReflectTableColumns(DbEngine, meta, targetTable):
> tableschema = Table(targetTable, meta, autoload=True,
> autoload_with=DbEngine)
> cols = dict()
> for c in tableschema.columns:
> print("{0}\t|\t{1}".format(c.name, c.type))
> cols[c.name] = c.type
>
> return cols
>
> def GetUsers():
> DBSession = sessionmaker(bind=Engine)
> session = DBSession()
> ShowTableData(session.query(Users).all(), 'users')
>
>
> def ShowTableData(resultSet, tablename):
> columns = ReflectTableColumns(Engine, Base.metadata, tablename)
> columnNames = list(columns.keys())
> print (type(resultSet))
> for row in resultSet:
> print (row.items[columnNames[1]])
> print (row.columns[columnNames[1]])
> print (row[columnNames[1]])
>
> GetUsers()
>
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and
> Verifiable Example. See http://stackoverflow.com/help/mcve for a full
> description.
> ---
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sqlalchemy/f11bf60e-e872-489e-9a9b-03998440bbb1n%40googlegroups.com
>
> <https://groups.google.com/d/msgid/sqlalchemy/f11bf60e-e872-489e-9a9b-03998440bbb1n%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper
http://www.sqlalchemy.org/
To post example code, please provide an MCVE: Minimal, Complete, and Verifiable
Example. See http://stackoverflow.com/help/mcve for a full description.
---
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sqlalchemy/70b1537b-14ea-4819-ae48-2c145d8dae63%40www.fastmail.com.