Получить данные из базы данных 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 очень чувствителен к отступам. На других языках вы используете фигурные скобки или BEGINEND блоки, но в Python вы используете отступ.

row[0], row[1] вещи ссылаются на элементы в извлеченной строке, а не на разные строки.

Сделайте отступ для строки печати, и он напечатает первое возвращенное поле Path для каждой записи.

Индекс кортежа находится вне диапазона, потому что возвращается только одно поле (нулевой элемент).

Ваш текущий код будет перебирать каждую возвращаемую строку и устанавливать для каждой из них по очереди, но будет печатать только последнее значение для a после того, как оно выйдет из цикла.

Другие вопросы по тегам