Анализ выходных данных sqlite PRAGMA в список python

Я пытаюсь использовать команду SQLite для сбора информации об именах столбцов:

columnsQuery = ("PRAGMA table_info(%s)" % (table))
columnNames = cursor.execute(columnsQuery)

В соответствии с проведенным мною исследованием выполнение этой команды должно дать мне имена столбцов в данной таблице. Из-за того, что у меня нет готовой базы данных sqlite, я не знаю, как выглядит вывод PRAGMA. Есть ли способ, которым я могу разобрать мою переменную "columnNames", чтобы быть списком имен столбцов Python?

2 ответа

Решение

Вывод прагмы имеет столбцы и строки, как и запрос:

$ sqlite3
SQLite версия 3.18.0 2017-02-11 14:59:58
Введите ".help" для использования подсказок.
Подключен к временной базе данных в памяти.
Используйте ".open FILENAME", чтобы открыть постоянную базу данных.
sqlite> создать таблицу t (идентификатор целочисленного первичного ключа, текст имени не нулевой, дата по умолчанию current_date);
sqlite> .mode столбцы
sqlite> .header on 
sqlite> pragma table_info(t);            
имя типа cid notnull     dflt_value  pk        
----------  ----------  ----------  ----------  ----------  ----------
0           id целое число 0 1         
1 название текста 1                       0         
2 дата 0           current_da  0         

Результат запроса представляет собой список кортежей с 4 значениями следующим образом:[(0, 'id', 'INTEGER', 1, None, 1), ...,]

следующий код может напечатать все имена столбцов:

      columnsQuery = cursor.execute(f"pragma table_info('{table[0]}')")
columnInfos = cursor.fetchall()
columnNames = [item[1] for item in columnInfos] 
Другие вопросы по тегам