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.

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 sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/f11bf60e-e872-489e-9a9b-03998440bbb1n%40googlegroups.com.

Reply via email to