在字典上迭代时,为什么sqlalchemy不分配属性?

时间:2019-04-14 20:35:51

标签: python sqlalchemy

我正在使用sqlalchemy ORM,并且具有包含许多列的表(即ORM中具有许多属性的类)。我想实例化一个类,然后使用字典分配实例的属性,其中键是属性名称,值是实例要采用的期望值。当我通过使用for循环遍历字典中的键来尝试此操作时,所得实例不会保留我提供的值。在for循环中,如果我打印instance.attribute,则这些值在那里,但是在for循环之外,它们消失了,对于这些值,我将得到None。 知道为什么这行不通吗?

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Integer

Base = declarative_base()

class SomeThing(Base):
    __tablename__ = 'some_things'

    thing1 = Column(Integer, primary_key = True, nullable = False)
    thing2 = Column(Integer, nullable = False)
    thing3 = Column(Integer, nullable = False)

some_thing = SomeThing()

dictionary = {'thing1' : 1, 'thing2' : 2, 'thing3' : 3}

for key in dictionary.keys():
    some_thing.key = dictionary[key]
    print(some_thing.key)     

print(some_thing.thing1)    

循环内的print语句返回期望值,但是循环外的print语句返回None。

0 个答案:

没有答案