Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何按列名从SQLAlchemy实例中获取值?_Python_Sqlalchemy - Fatal编程技术网

Python 如何按列名从SQLAlchemy实例中获取值?

Python 如何按列名从SQLAlchemy实例中获取值?,python,sqlalchemy,Python,Sqlalchemy,我有这样的桌子: 类MPTTPages(基本): __tablename=“mptt\u页面” 父项=无 id=列(整数,主键=True) 左=列(“lft”,整数,可空=假) 右=列(“rgt”,整数,可空=假) 名称=列(字符串) description=列(文本) 可见=列(布尔值) 定义报告(自我): 返回“mpttpage(%s,%d,%d)”%(self.id,self.left,self.right) 如何通过列名“lft”从实例mpttpage获取值?实例没有属性lft,只剩左

我有这样的桌子:

类MPTTPages(基本):
__tablename=“mptt\u页面”
父项=无
id=列(整数,主键=True)
左=列(“lft”,整数,可空=假)
右=列(“rgt”,整数,可空=假)
名称=列(字符串)
description=列(文本)
可见=列(布尔值)
定义报告(自我):
返回“mpttpage(%s,%d,%d)”%(self.id,self.left,self.right)

如何通过列名“lft”从实例mpttpage获取值?实例没有属性lft,只剩左。

检查实例的映射类,以获取属性名称到列的映射。如果列名与要查找的名称匹配,则从实例中获取属性名称

from sqlalchemy import inspect

def getattr_from_column_name(instance, name, default=Ellipsis):
    for attr, column in inspect(instance.__class__).c.items():
        if column.name == name:
            return getattr(instance, attr)

    if default is Ellipsis:
        raise KeyError
    else:
        return default