Форум сайта python.su
import sqlite3 def get_data_from_tables_sqlite3row(con, cur): con.row_factory = sqlite3.Row cur.execute("SELECT * FROM user") arr = cur.fetchall() print ("тип arr:", type(arr)) print ("Кол-во полей с строке: ", len(arr)) print ("Доступ по индексу:", arr[0][1]) print ("Доступ по имени поля:", arr[0]["email"], arr[0]["EMAIL"]) for elem in arr[0]: print (elem) print("Имена полей:", arr[0].keys()) con = sqlite3.connect("test.sqlite3") cur = con.cursor() get_data_from_tables_sqlite3row(con, cur)
Отредактировано Pluto (Июнь 25, 2012 08:27:29)
Офлайн
Есть тут кто?
Офлайн
нет, все вымерли :)
ну возвращает список, в чем вопрос то?
Офлайн
Piton23В том, что вместо доступа к полю по его имени - облом!
ну возвращает список, в чем вопрос то?
print ("Доступ по имени поля:", arr[0]["email"]])
for elem in arr[0]: print (elem) print("Имена полей:", arr[0].keys())
Отредактировано Pluto (Май 29, 2012 11:48:58)
Офлайн
В какой книге вас сказано не понятно, из документации следует что возвращает список
Cursor.fetchall()
Fetches all (remaining) rows of a query result, returning a list. Note that the cursor’s arraysize attribute can affect the performance of this operation. An empty list is returned when no rows are available.
если уж очень хочеться введите свой словарь (быдло способ)
fields = {'имя': 0, ‘email’: 1…}
print arr[fields]
либо лучше рассматривайте sqllite3, я с ней не работал мб кто другой подскажет более толковое
Офлайн
Устанавливайте row_factory до создания курсора:
import sqlite3 def get_data_from_tables_sqlite3row(con): con.row_factory = sqlite3.Row cur = con.cursor() cur.execute("SELECT * FROM user") arr = cur.fetchall() print ("тип arr:", type(arr)) print ("Кол-во полей с строке: ", len(arr)) print ("Доступ по индексу:", arr[0][1]) print ("Доступ по имени поля:", arr[0]["email"], arr[0]["EMAIL"]) for elem in arr[0]: print (elem) print("Имена полей:", arr[0].keys()) con = sqlite3.connect("test.sqlite3") get_data_from_tables_sqlite3row(con)
Офлайн
PooH
Премного благодарен!
Офлайн