2017-11-09 2 views
-1

Ich bin ein Neuling für Python und SQL. Meine Datenbank enthält ein Feld, in dem der Pfad zu Bildern gespeichert ist. Ich möchte jeden Pfad einer Variablen in Python zuweisen. Ich kann nur den Pfad der ersten Zeile speichern. Dies ist mein CodeAbrufen von Daten aus der SQL-Datenbank mithilfe von 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 

Aber wenn ich Art und Weise versuchen, folgende einschließlich aller anderen relevanten Text

for row in data : 
    a= row[0] 
    b = row[1] 
    c = row[2] 
print a 

folgende Fehlermeldung angezeigt

IndexError: tuple index out of range

Antwort

0

Sie die print a Anweisung einrücken müssen es machen Teil der Schleife. Python reagiert sehr empfindlich auf Einrückungen. In anderen Sprachen verwenden Sie Klammern oder BEGINEND Blöcke, aber in Python verwenden Sie Einzug.

Die row[0], row[1] Zeug bezieht sich auf die Elemente innerhalb der abgerufenen Zeile, nicht die verschiedenen Zeilen.

die Druckzeile einrücken und das erste zurückgegebene Feld, Path, für jeden Datensatz ausgeben.

Der Tupelindex liegt außerhalb des Bereichs, da nur ein Feld (Element null) zurückgegeben wird.

Ihr aktueller Code durchläuft jede zurückgegebene Zeile und setzt nacheinander einen Wert für jeden Wert, druckt aber nur den letzten Wert für einen Wert, nachdem er aus der Schleife kommt.

Verwandte Themen