SQLAlchemy ORM允许:
instance1 = Class1()
instance1.foo = 'bar'
但是,我想要做的是引用列名称' foo'将它作为变量传递给实例,如:
column_name = 'foo'
instance1[column_name] = 'bar' # or
instance1.column(column_name) = 'bar' # or
instance1.Column(column_name) = 'bar'
或者,或许要做类似的事情:
instance1=Class1(foo='bar') # or
instance1=Class1('foo':'bar')
或:
dict = {'foo':'bar'}
instance1 = Class1(dict) # or
instance1 = Class1(**dict) # <-- THIS *DOES* WORK
当然,上述工作都不是。有没有一种方法可以用变量引用列名?
仅供参考,我正在尝试做的更大图片版本是将数据收集到字典中,其中的键与多个表中的列名称子集相匹配。然后我想将我在字典中收集的任何内容转储到这些表中:
instance1 = Class1()
instance2 = Class2()
for key in data_dictionary:
instance1[key] = data_dictionary[key]
instance2[key] = data_dictionary[key]
或简单地说:
instance1 = Class1(data_dictionary)
instance2 = Class2(data_dictionary)
感谢您的帮助, 安德鲁
答案 0 :(得分:1)
谢谢你,univerio - 以下作品:
dict = {'foo':'bar'}
instance = Class1(**dict)
与您的其他建议一样:
setattr(instance, 'foo', 'bar')