I have two models in which these model both return by toDict: as follows,
Tableone Model
class Base(db.Model):
    __abstract__  = True
class Tableone(Base):
    __tablename__ = 'tableone'
    zxc = db.Column(db.VARCHAR(20),  nullable=False)
    asd = db.Column(db.VARCHAR(20),  nullable=False)
    qwe = db.Column(db.Integer,  nullable=False)
    tabletwo = db.relationship("Tabletwo", primaryjoin="foreign(Tabletwo.asd) == Tableone.bnm", uselist=True)
    def __init__(zxc, asd, qwe):
        self.zxc     = zxc
        self.asd    = asd 
        self.qwe = qwe
    def toDict(self):
        return { c.key: getattr(self, c.key) for c in inspect(self).mapper.column_attrs }
Tabletwo Model
class Base(db.Model):
    __abstract__  = True
class Tabletwo(Base):
    __tablename__ = 'tabletwo'
    iop = db.Column(db.VARCHAR(20),  nullable=False)
    jkl = db.Column(db.VARCHAR(20),  nullable=False)
    bnm = db.Column(db.Integer,  nullable=False)
    def __init__(iop, jkl, bnm ):
        self.iop     = iop
        self.jkl    = jkl 
        self.bnm = bnm
    def toDict(self):
        return { c.key: getattr(self, c.key) for c in inspect(self).mapper.column_attrs }
Both model has toDict function. When I access it via controller:
    def index():
        tre = session.query(Tableone, Tabletwo).outerjoin(Tableone.tabletwo).all()
        treArr = []
        for tr in tre:
            treArr.append(tr.toDict())
        return jsonify(treArr)
it gives me error of .... is not JSON serializable
It works good if I only use it without join method like this:
  tre = session.query(Tableone).all()
Or if I mention the join one by one is also working :
  tre = session.query(Tableone.iop, Tableone.jkl, Tableone.bnm,  Tabletwo.zxc).outerjoin(Tableone.tabletwo).all()
Even though the result is only multidimensional array. [['iop1','jkl1', 'bnm1', 'zxc1'],[...],[...],[...],]
But I need to fetch all data in join table without have to mention it one by one what to select, and also need the key to access it in response.
Please help me how to do it correctly. I am very new in python. Many thanks in advance.
[UPDATE 1]
I am just aware if I access it like this:
    for tr in tre:
        treArr.append(tr.Tabletwo.toDict()) # here
    return jsonify(treArr)
It throws error saying AttributeError: 'NoneType' object has no attribute 'toDict'
But if I access it like this
    for tr in tre:
        treArr.append(tr.Tableone.toDict()) # here
    return jsonify(treArr)
It gives me the result of TableOne only
[UPDATE 2]
I was going to try it with merge function :
reference merge-two-dictionaries
for tr in tre:
    merge_two_dicts(sim.Simses.toDict(), sim.Carrier.toDict()) 
...
def merge_two_dicts(x, y):
    z = x.copy()   # start with x's keys and values
    z.update(y)    # modifies z with y's keys and values & returns None
    return z
But the error is mention in [UPDATE 1]
