.csv のすべての行を辞書に変換しようとしています (キーは .csv の最初の行です)。次に、これらの各辞書をリストに入れようとしています。このコードを実行すると、リストに各辞書 (一時的に dataLine として保存) を正しく追加するのではなく、.csv の最後の行を何度もリストに追加することになりますか? コード内の行「dataList.append(dataLine)」を「print dataLine」に置き換えると、コードは .csv を反復処理し、最後の行を何度も印刷するのではなく、各行を個別に印刷するため、これはさらに混乱します。また。
from sys import argv
import csv
# arguments
script, csvFile = argv
# check input
while csvFile.endswith(".csv") == False:
csvFile = raw_input("Please enter a *.csv file: ")
# open the csv file
openFile = open(csvFile, 'r')
# read the csv file
reader = csv.reader(openFile, delimiter=',')
# extract first row to use as keys
for row in range(1):
keys = reader.next()
# turn rows into dictionaries with keys
#FIX THIS PART!! NOT WORKING RIGHT!!!
length = len(keys)
dataLine = {}
dataList = []
for row in reader:
for i in range(length):
dataLine[keys[i]] = row[i]
dataList.append(dataLine)
for x in dataList:
print x
print ""
# close the file
openFile.close()