import sqlalchemy as db
import json

def convert(jtype, value):
    """JSON encoder function for SQLAlchemy special classes."""
    if isinstance(jtype, db.DateTime):
        return str(value.isoformat())
    elif isinstance(jtype, db.Float):
        return str(float(value))
    return str(value)    

def serialize(inst, cls):
    d = dict()
    for c in inst.__table__.columns:
        v = getattr(inst, c.name)
        d[c.name] = convert(c.type, v)
    return json.dumps(d)
