在 python 中 sqlalchemy我想获取我的 nullable=False
列
类,包括 JSONB 类型。
这是我的示例类:
class MyClass():
__tablename__ = 'myclass'
id = Column("id", primary_key=True)
name = Column(String, nullable=False)
body = Column(JSONB, nullable=False)
irrelevant = Column(String, nullable=True)
使用模块 inspect
我可以获得 MyClass
的成员并应用过滤器:
# list of possible attributes
attr = [a for a in inspect.getmembers(MyClass,lambda :not(inspect.isroutine(a))) if not '__' in a[0]]
但是无法检查 nullable=False
是否在列中。
最终我想获得列:name
和 body
。
最佳答案
您可以遍历 MyClass.__table__.columns
并获取不可为 null 的列的名称
column_names = [col.name for col in MyClass.__table__.columns if not col.nullable]
然后用getattr
获取属性
attrs = [getattr(MyClass, column_name) for column_name in column_names]
关于python - 使用 sqlalchemy 从类返回 NOT NULL 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35777484/