Получить данные из базы данных SQL с помощью Python
Я новичок в Python и SQL. Моя база данных содержит поле, в котором хранится путь к изображениям. Я хочу назначить каждый путь к переменной в Python. Я могу хранить только путь первого ряда. Это мой код
import pymysql
from arcpy import env
env.workspace = "D:/year 4 semester 1/Python/Data/"
conn= pymysql.connect(host='localhost',user='root',password='',db='research')
cursor = conn.cursor ()
cursor.execute ("select Path from sourcedata")
data = cursor.fetchmany()
for row in data :
a= row[0]
print a
Но когда я пытаюсь следовать следующим образом, включая весь другой соответствующий текст
for row in data :
a= row[0]
b = row[1]
c = row[2]
print a
Появляется следующая ошибка
IndexError: индекс кортежа вне диапазона
1 ответ
Вам нужно сделать отступ print a
заявление, чтобы сделать его частью цикла. Python очень чувствителен к отступам. На других языках вы используете фигурные скобки или BEGIN
END
блоки, но в Python вы используете отступ.
row[0], row[1]
вещи ссылаются на элементы в извлеченной строке, а не на разные строки.
Сделайте отступ для строки печати, и он напечатает первое возвращенное поле Path для каждой записи.
Индекс кортежа находится вне диапазона, потому что возвращается только одно поле (нулевой элемент).
Ваш текущий код будет перебирать каждую возвращаемую строку и устанавливать для каждой из них по очереди, но будет печатать только последнее значение для a после того, как оно выйдет из цикла.