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)
—–
Traceback (most recent call last):
File “F:\PythonProg\SQLITE_LESSONS\sqlite.py”, line 151, in <module>
get_data_from_tables_sqlite3row(con, cur)
File “F:\PythonProg\SQLITE_LESSONS\sqlite.py”, line 129, in get_data_from_tables_sqlite3row
print (“Доступ по имени поля:”, arr, arr)
TypeError: tuple indices must be integers, not str
—–
почему arr=cursor.fetchall() возвращает список, а не sqlite3.row?
Я писал этот код, основываясь на примере из книги. Только там нет вызова процедуры, как у меня. Там код из моей процедуры в основном коде программы-примера.