SqlAlchemy:处理名称中带有美元符号的表列

时间:2016-05-05 08:10:11

标签: python sql sqlalchemy

在SqlAlchemy中,为每个表列声明一个变量。但是我必须从一个名为customer$partner$naziv的列的表中读取,并且您不能在Python中声明一个具有类似名称的变量。有没有办法解决这个问题?

这就是我所拥有的(显然不起作用):

class RfidSif(Base):
""""""
__tablename__ = 'rfid_sif'

id = Column(Integer, primary_key=True)
customer               = Column(Integer)
customer$partner$naziv = Column(String)
rfid_id                = Column(String)
rfid_name              = Column(String)
rfid_group_name        = Column(String)
rfid_comment           = Column(String)
rfid_startdate         = Column(Date)
rfid_enddate           = Column(Date)
activity               = Column(SmallInteger)
user_headless          = Column(Integer)

#----------------------------------------------------------------------
def __init__(self, id, customer, customer$partner$naziv, rfid_id, rfid_name, rfid_group_name, rfid_comment, rfid_startdate, rfid_enddate, activity, user_headless):
    """"""
    self.id                     = id
    self.customer               = customer
    self.customer$partner$naziv = customer$partner$naziv
    self.rfid_id                = rfid_id
    self.rfid_name              = rfid_name
    self.rfid_group_name        = rfid_group_name
    self.rfid_comment           = rfid_comment
    self.rfid_startdate         = rfid_startdate
    self.rfid_enddate           = rfid_enddate
    self.activity               = activity
    self.user_headless          = user_headless

#----------------------------------------------------------------------
def __repr__(self):
    """"""
    return "<RfidSif - '%s': '%s' - '%s'>" % (self.id, self.rfid_id, self.name)

1 个答案:

答案 0 :(得分:3)

只需将列名指定为第一个参数,并使用不同的属性名称:

customer_partner_naziv = Column('customer$partner$naziv', String)

此外,您不需要自己的__init__ - 默认构造函数接受所有内容的关键字参数(并且您不应该手动设置id,它通常是一个序列/ autoincrement column)