Конструкции типа
print(conn.execute("SELECT * FROM *").fetchall())
вызывают ошибку, в документации не нашёл. Все примеры работают с теми таблицами, которые сами и создали.
print(conn.execute("SELECT * FROM *").fetchall())
SchlangeЗачет! Мне всегда SQL казался убогим.
SELECT * FROM *
SELECT * FROM sqlite_master
for table in tables: print(conn.execute('SELECT * FROM ' + table).fetchall())
#!/usr/bin/python3 # coding: utf-8 import sqlite3 dbname = 'places.sqlite' conn = sqlite3.connect(dbname) # Подключение к dbname cursor = conn.cursor() # Создание курсора. Если ниже используется # .execute то можно не создавать, # сам создастся. tables = str(conn.execute('SELECT * FROM sqlite_master').fetchall()) print(tables) for table in tables: print(conn.execute('SELECT * FROM ' + table).fetchall()) conn.close() # закрытие файла базы. Внимание, без commit() # база закроется без применения изменений!
import sqlite3 dbname = 'places.sqlite' conn = sqlite3.connect(dbname) # Подключение к dbname cursor = conn.cursor() #Создание курсора. cursor.execute('SELECT * FROM sqlite_master') for table in cursor.fetchall(): print(table[1]) conn.close() #закрытие файла базы. Внимание, без commit() база закроется без применения изменений!
SchlangeЛемао, с чего это так?
Спасибо! Это сработало. Выходит вариант DamMercul был неверный. tables дополнительно создавать - лишняя сущность и проблемы, которые я словил.
[a[2] for a in cursor.fetchall()]