Анализ выходных данных 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]