SQLAlchemy字典结果集转对象结果集

用sql执行query返回的是对象集没毛病,但是不太习惯使用query,还是倾向于采用execute执行sql语句的方式获得结果集,这样得到的结果是字典list,可以采用此函数转化为对象list

def dictToObj(results, to_class):
    """将字典list或者字典转化为指定类的对象list或指定类的对象
    python 支持动态给对象添加属性,所以字典中存在而该类不存在的会直接添加到对应对象
    """
    if isinstance(results, list):
        objL = []
        for result in results:
            obj = to_class()
            for r in result.keys():
                obj.__setattr__(r, result[r])
            objL.append(obj)
        return objL
    elif isinstance(results, dict):
        obj = to_class()
        for r in result.keys():
            obj.__setattr__(r, result[r])
        return obj
    else:
        print("传入对象非字典或者list")
        return None

你可能感兴趣的:(python)