В настоящее время создаем функции CRUD. Суть этого вопроса находится на чтениях. Обычно функции выборки курсора возвращают данные, упакованные в кортеж. Ради удобства чтения я хочу переупаковать все в словарь. (Проблема XY: не следует ли мне этого делать?)
Используя курсор.описание, я могу получить имя и тип каждого столбца. Но какую структуру я могу использовать, чтобы она содержала и метку, и тип?
pool_settings — это str, int, int, int.
Код: Выделить всё
def read_pool_settings(site):
connection = create_connection()
cursor = connection.cursor()
cursor.execute(
f'''
SELECT * FROM pool_settings
WHERE site = '{site}';
''')
output = cursor.fetchone()
column_info = [(desc[0], desc[1]) for desc in cursor.description]
connection.close()
dict_output = dict()
for index, info in enumerate(column_info):
dict_output[info[0]] = output[index]
# something about type hinting with info[1] here
return dict_output
Я также изучал typing.TypedDict, но вам нужно вручную объявлять типы, и это не относится к моему потребности.
Это просто безнадежное дело в Python?
Подробнее здесь: https://stackoverflow.com/questions/773 ... ql-db-read