在python sqlalchemy中为动态名称的列设置值

qkh*_*hly 4 python sqlalchemy

我在Python sqlalchemy中有以下定义的表:

class entry(Base):
    summary = Column(String(10000))
    content = Column(String(10000))
    description = Column(String(10000))
Run Code Online (Sandbox Code Playgroud)

我基本上想要做以下事情:

a = entry()
for col in ['summary', 'content', 'description']:
    a[col] = get_value(col)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

TypeError: 'entry' object has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud)

所以我想我不能把它a视为一个dict.通过sqlalchemy文档查看,我没有找到一种方法来设置a的值,Column当使用变量来识别Column.有人能指出我正确的方向吗?感谢您的帮助!

ale*_*cxe 5

你可以使用内置的setattr():

a = entry()
for col in ['summary', 'content', 'description']:
    setattr(a, col, get_value(col))
Run Code Online (Sandbox Code Playgroud)