#python #sqlite
#python #sqlite
Вопрос:
В моем коде я выполняю SELECT
оператор SQLite для запроса данных в моей базе данных:
sqlite_obj = c.execute("SELECT * FROM my_table WHERE item_id = 2")
Это вернет все данные из строки таблицы в item_id = 2
качестве объекта курсора SQLite. Я пытаюсь получить доступ к данным из объекта курсора SQLite, используя следующий код:
item_info = sqlite_obj[0][0]
Это возвращает ошибку: TypeError: 'sqlite3.Cursor' object is not subscriptable
Однако следующий код работает:
for item in sqlite_obj:
item_info = item[0]
Почему?
Комментарии:
1.
cursor.execute
возвращает итератор , к которому невозможно получить доступ по индексу. Каждая итерация итератора возвращает объект строки, к которому можно получить доступ по индексу.2. @snakecharmerb спасибо. Теперь я понимаю. Некоторая полезная информация, которую я нашел на итераторах: w3schools.com/python/python_iterators.asp