2017-11-09 19 views
-1

私はpythonとSQLの初心者です。 私のデータベースには、画像へのパスを保存したフィールドが含まれています。 各パスをPythonで変数に代入したい。 私は最初の行のパスだけを保存できます。 これは私のコードpythonを使用してSQLデータベースからデータを取得

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 

含む方法を以下しようとすると、次のエラーは、あなたがそれを作るためにprint a文をインデントする必要が

IndexError: tuple index out of range

答えて

0

表示されますループの一部。 Pythonはインデントについて非常に敏感です。他の言語では、中括弧またはBEGINENDブロックを使用しますが、Pythonではインデントを使用します。

row[0], row[1]」は検索された行内の要素を指し、異なる行は参照しません。

印刷行をインデントし、各レコードに対して最初に返されるフィールドPathを出力します。

1つのフィールド(要素0)しか返されないため、タプルインデックスが範囲外です。

現在のコードは返されるすべての行を順番に処理し、それぞれを順番に設定しますが、ループから出た後の最後の値だけを出力します。

関連する問題