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

Python SqlAlchemy:处理名称中带有美元符号的表列,python,sql,sqlalchemy,Python,Sql,Sqlalchemy,在SqlAlchemy中,为每个表列声明一个变量。但是我必须从一个表中读取,该表有一个名为customer$partner$naziv的列,并且不能用Python中的名称声明变量。有没有办法绕过这个问题 以下是我所拥有的(显然没有工作): 类RfidSif(基): """""" __tablename_uuu='rfid_uSIF' id=列(整数,主键=True) 客户=列(整数) 客户$partner$naziv=列(字符串) rfid_id=列(字符串) rfid_name=列(字符串)

在SqlAlchemy中,为每个表列声明一个变量。但是我必须从一个表中读取,该表有一个名为
customer$partner$naziv
的列,并且不能用Python中的名称声明变量。有没有办法绕过这个问题

以下是我所拥有的(显然没有工作):

类RfidSif(基):
""""""
__tablename_uuu='rfid_uSIF'
id=列(整数,主键=True)
客户=列(整数)
客户$partner$naziv=列(字符串)
rfid_id=列(字符串)
rfid_name=列(字符串)
rfid\u组\u名称=列(字符串)
rfid_comment=列(字符串)
rfid_startdate=列(日期)
rfid_enddate=列(日期)
活动=列(SmallInteger)
用户_headless=列(整数)
#----------------------------------------------------------------------
定义初始日期(自我、id、客户、客户$partner$naziv、rfid\u id、rfid\u名称、rfid\u组名称、rfid\u注释、rfid\u开始日期、rfid\u结束日期、活动、用户\u无头):
""""""
self.id=id
self.customer=客户
self.customer$partner$naziv=客户$partner$naziv
self.rfid\u id=rfid\u id
self.rfid\u name=rfid\u name
self.rfid\u group\u name=rfid\u group\u name
self.rfid\u comment=rfid\u comment
self.rfid\u startdate=rfid\u startdate
self.rfid\u enddate=rfid\u enddate
self.activity=活动
self.user_headless=用户_headless
#----------------------------------------------------------------------
定义报告(自我):
""""""
返回“”%(self.id,self.rfid\u id,self.name)

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

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

此外,您不需要自己的
\uuuuu init\uuuu
——默认构造函数接受所有的关键字参数(而且您不应该手动设置
id
,它通常是一个串行/自动增量列)

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

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

此外,您不需要自己的
\uuuuu init\uuuu
——默认构造函数接受所有的关键字参数(而且您不应该手动设置
id
,它通常是一个串行/自动增量列)

仅供参考,对齐语句违反了PEP8(并且非常难看,特别是如果其中一个语句比其他语句长得多的话)直到现在我才知道PEP8。但是,尽管它很难看,但我发现它更具可读性。问题是,当你添加一些不符合当前对齐方式的内容时,你会得到非常糟糕的差异。不是添加一行,而是添加一行并更改更多行。这使得审查更改变得更糟糕。您也不应该添加空的docstring。如果您想在其中写入内容(但
\uuu repr\uuuuuuuuuuuuuuuuuuuuuuuuuu
很少需要),请忽略它们并添加它们,但如果更改对齐中所有行的对齐方式,diff会将其识别为多行上的一个diff:)顺便问一下,Elixir对我的情况更有用吗,因为我只是选择和插入,而不是真正创建新的表和数据库?仅供参考,对齐语句违反了PEP8(而且非常难看,特别是如果其中一个语句比其他语句长得多的话),直到现在我还不知道PEP8。但是,尽管它很难看,但我发现它更具可读性。问题是,当你添加一些不符合当前对齐方式的内容时,你会得到非常糟糕的差异。不是添加一行,而是添加一行并更改更多行。这使得审查更改变得更糟糕。您也不应该添加空的docstring。如果您想在其中写入内容(但
\uuu repr\uuuuuuuuuuuuuuuuuuuuuuuuuu
很少需要),请忽略它们并添加它们,但如果更改对齐中所有行的对齐方式,diff会将其识别为多行上的一个diff:)顺便问一下,Elixir对我的情况更有用吗,因为我只是选择和插入,而不是真正创建新的表和数据库?太棒了!非常感谢您的快速回复!好极了!非常感谢您的快速回复!