我想做的就是打印一行sqlalchemy表格行。
说我有:
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class ATable(Base):
__tablename__ = 'atable'
id = Column(Integer, primary_key=True)
name = Column(String(255), nullable=False)
然后我想输出任何看起来像这样的东西:
id: 1
name: theRowName
优先,无需在表格列中进行硬编码,即更一般地说。
我试过了:
atable = Atable()
... #add some values etc.
print atable
print str(atable)
print repr(atable)
print atable.__table__.c
考虑实施__str__
和__repr__
,但他们又缺乏一般性要求。
关于将表行覆盖到JSON中有很多问题,但这不是我想要的,我更关心视觉输出 - 之后不需要机器可读。
答案 0 :(得分:0)
要清楚 - 你想要一个通用的方法来打印" col:value"没有硬编码列名?我没有太多使用SQLAlchemy,但像这样的__str__
方法应该可以工作:
def __str__(self):
output = ''
for c in self.__table__.columns:
output += '{}: {}\n'.format(c.name, getattr(self, c.name))
return output
然后,您可以将该方法放在mixin类中,以便在模型中的其他位置使用。