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