强调列名、内省和映射

2024-09-28 22:29:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用SQLAlchemy访问遗留的MSSQL数据库。通过基本的模式检查,我已经可以列出我感兴趣的表的列了。不幸的是,这些列名有时包含重音字母(例如,“Magánszemély”、“LevelezésiCímIrányítószám”)。你知道吗

我唯一的要求是能够查询这个数据库。你知道吗

我使用以下命令为您列出了一些数据库名称

def inspect_komplex_table():
    table = Table('D_Allomanylista_Komplex_V', meta, autoload=True, autoload_with=engine)
    return table

def get_columns():
    keys = inspect_komplex_table().columns.keys()
    keys.sort()
    txt = '\n'.join(keys)
    open('column_names.txt', 'w').write(txt.encode('utf8'))

这将在列中给出一个(长)列表_名称.txt包含行的文件:

...
JutÉrvKezd
KEZDET
KTVSZAM
KamaraiTagszám
Képviselők
Lejarat
LevelezésiCímIrányítószám
LevelezésiCímUtca
LevelezésiCímVáros
...

我试着先创建一个没有重音列的基本映射

class BiztositasokModel(object):

    def __init__(self, UgyfKod):
        self.ugyfelkod = UgyfKod

其中UgyfKod是内省中的一列,但是

mapper(BiztositasokModel, inspect_komplex_table())

UnicodeEncodeError一起失败

有人能告诉我怎么处理这样的数据库吗?你知道吗


Tags: txt名称数据库deftablekeysmirinspect