Podczas używania modułu sqlite3 w pythonie, wszystkie elementy parametru cursor.description z wyjątkiem nazw kolumn są ustawiane na None, więc tej krotki nie można użyć do znalezienia typów kolumn dla wyniku zapytania (w przeciwieństwie do innych DB - moduły zgodne z interfejsem API). Czy jest to jedyny sposób, aby typy kolumn używały pragma table_info(table_name).fetchall()
, aby uzyskać opis tabeli, zapisać ją w pamięci, a następnie dopasować nazwy kolumn z parametru cursor.description do ogólnego opisu tabeli?sqlite3 i cursor.description
Odpowiedz
Nie, to nie jedyny sposób. Alternatywnie możesz także pobrać jeden wiersz, powtórzyć go i sprawdzić poszczególne kolumny obiektów i typów Pythona. O ile nie ma wartości None (w tym przypadku pole SQL ma wartość NULL), powinno to dać dość precyzyjne wskazanie, jaki był typ kolumny bazy danych.
Sqlite3 używa tylko sqlite3_column_decltype
i sqlite3_column_type
w jednym miejscu, każdy, i żadne nie są dostępne dla aplikacji Python - więc ich nie jest "bezpośrednim" sposobem, którego mógłbyś szukać.
nie próbowałem to w Pythonie, ale można spróbować czegoś jak
SELECT *
FROM sqlite_master
WHERE type = 'table';
który zawiera DDL CREATE używany do tworzenia tabeli. Parsując DDL można uzyskać informacje o typie kolumny, takie jakie jest. Pamiętaj, że SQLITE jest raczej niejasny i nieograniczony, jeśli chodzi o typy danych kolumn.
- 1. SQLite3 i wiele procesów
- 2. Zestaw FMResultSet sqlite3 i fmdb jest możliwy?
- 3. sqlite.cs nie może znaleźć sqlite3 i społeczności
- 4. Polecenie powłoki sqlite3 ".backup" i transakcja
- 5. sqlite3 przygotowania, oprawa i resetowanie statments
- 6. Klejnotu sqlite3-ruby nie można znaleźć sqlite3.h na ubuntu
- 7. sqlite3: Nie znaleziono
- 8. PHP z obsługą sqlite3
- 9. Dodaj unikalny indeks. SQLite3
- 10. Równoczesne pisanie z sqlite3
- 11. Pozwolenie sqlite3 odmowa Androida
- 12. plik bazy Sqlite3 przedłużenie
- 13. python3.6 import błąd sqlite3
- 14. import sqlite3 z cytatami
- 15. wersja Pythona Sqlite3
- 16. Problemy z łączeniem sqlite3
- 17. Zmiana wartości w SQLite3
- 18. sqlite3 w języku Python
- 19. Kompilacja z sqlite3 w C++
- 20. jak włączyć sqlite3 dla php?
- 21. sqlite3: tworzenie tabeli bez kolumn
- 22. UPDATE tabela krzyżowa w Sqlite3
- 23. LITERATURA słów kluczowych w SQLite3
- 24. Czy program sqlite3 kompresuje dane?
- 25. Jakie są różnice między sqlite3 z python2.5, pysqlite i apsw
- 26. Jak włączyć REGEXP w SQLite3 i Rails 3.1?
- 27. Wdrażanie RoR na Heroku i Sqlite3 kończy się niepowodzeniem
- 28. sqlite3 wstaw i odczytaj dane BLOB w bazie danych
- 29. Otwórz bazę danych i wyświetl tabele w sqlite3?
- 30. Uaktualnienie wersji sqlite3 przy użyciu Pythona 2.7.3 i pysqlite2 2.6.3