Разбираю похожие варианты.
Пусть будет ответом. вдруг пригодится!
from sqlalchemy import create_engine, MetaData, Table
from sqlalchemy.orm import mapper, sessionmaker
from sqlalchemy.engine import URL
class Bookmarks(object):
pass
def loadSessionLocalNGuidesSQLNew():
connection_string = r"""DRIVER={SQL Server Native Client 11.0};
SERVER=(localdb)\v11.0;
DATABASE=C:\Какойто путь к базе\NGuidesSQLNew.mdf;
UID=;PWD="""
connection_url = URL.create("mssql+pyodbc", query={"odbc_connect": connection_string})
engine = create_engine(connection_url)
metadata = MetaData(engine)
ntypes = Table('NTypes', metadata, autoload=True) # Таблица NTypes
mapper(Bookmarks, ntypes)
Session = sessionmaker(bind=engine)
session = Session()
return session
if __name__ == "__main__":
session = loadSessionLocalNGuidesSQLNew()
res = session.query(Bookmarks).all()
for a in res:
print(dict(filter(lambda item: item[0][0] != '_', a.__dict__.items())))
На выходе имеем
{'ID': 1, 'Name': 'Размер', 'USort': 1, 'TypeValueID': 2}
{'ID': 3, 'Name': 'Да/Нет', 'USort': 3, 'TypeValueID': 4}
{'ID': 5, 'Name': 'Строка', 'USort': 5, 'TypeValueID': 3}
{'ID': 6, 'Name': 'Целое число', 'USort': 6, 'TypeValueID': 1}
{'ID': 7, 'Name': 'Число', 'USort': 7, 'TypeValueID': 2}
{'ID': 10, 'Name': 'Штриховка', 'USort': 17, 'TypeValueID': 1}
{'ID': 11, 'Name': 'Кортеж свойств', 'USort': 11, 'TypeValueID': 1}
{'ID': 12, 'Name': 'Файлы типа К3|*.k3', 'USort': 12, 'TypeValueID': 3}
{'ID': 13, 'Name': 'Файлы макропрограмм|*.mac;*.py', 'USort': 13, 'TypeValueID': 3}
{'ID': 14, 'Name': 'Файлы картинок|*.jpg;*.bmp;*.wmf;*.gif;*.tiff;', 'USort': 14, 'TypeValueID': 3}
{'ID': 15, 'Name': 'Файлы wmf|*.wmf', 'USort': 15, 'TypeValueID': 3}
{'ID': 16, 'Name': 'Текстура', 'USort': 16, 'TypeValueID': 3}
{'ID': 17, 'Name': 'Цвет К3', 'USort': 17, 'TypeValueID': 1}
{'ID': 18, 'Name': 'Номенклатурная единица', 'USort': 18, 'TypeValueID': 1}
{'ID': 19, 'Name': 'Сборочная единица', 'USort': 18, 'TypeValueID': 1}
[/code