1
的SQLAlchemy的ORM允許:使用變量引用的列名(SQLAlchemy的ORM)
instance1 = Class1()
instance1.foo = 'bar'
我想做的事,然而,是將它作爲一個變量引用的列名「富」實例,是這樣的:
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)
感謝您的幫助, 安德魯
1.'Class1(** dict)'應該工作,如果你沒有重寫默認的構造函數。 2.你可以使用['setattr'](https://docs.python.org/2/library/functions.html#setattr) – univerio
instance = Class1(** dict)確實有用,謝謝你univerio。這是我認爲我嘗試過的一件事......對不起浪費你的時間! –