如何在python中转义哈希(#)char?

我正在使用pyodbc查询AS400(不幸的是),有些列名称中有哈希值!这是一个小例子:

self.cursor.execute('select LPPLNM, LPPDR# from BSYDTAD.LADWJLFU')

for row in self.cursor:
    p = Patient()
    p.last = row.LPPLNM
        p.pcp = row.LPPDR#

我明显得到这样的错误:

 AttributeError: 'pyodbc.Row' object has no attribute 'LPPDR'

有没有办法逃避这个?似乎怀疑var名称中是否允许哈希.我今天刚拿起python,如果答案是常识,请原谅我.

谢谢,皮特

解决方法:

使用getattr函数

p.pcp = getattr(row, "LPPDR#")

通常,这是处理非合法Python标识符的属性的方式.例如,你可以说

setattr(p, "&)(@#$@!!~%&", "Hello World!")
print getattr(p, "&)(@#$@!!~%&")  # prints "Hello World!"

此外,正如JG建议的那样,您可以为列添加别名,例如说

SELECT LPPDR# AS LPPDR ...
上一篇:python – pyodbc在我的机器上非常慢,但在其他机器上却没有


下一篇:【HANA系列】SAP 【第二篇】EXCEL连接SAP HANA的方法(ODBC)