我試圖帶兩個csv文件,它們在列1中具有相同的ID號。有python查找匹配並將兩列附加到匹配的行在電子表格中1.讓他們在第一列尋找匹配,然後將匹配的行添加到相同的ID。列表索引超出範圍,並且python說謊很大CSV
spreadsheet 1
0001, beth, merda
0002, mike, john
0003, mary, smith
表格2
0001, url, owner
0003, url, owner
0002, url, owner
修正後
0001, beth, merda, url, owner
0002, mike, john, url, owner
0003, mary, smith, url, owner
目前我得到一個錯誤:
File "payments.py", line 10, in <module>
if row[0] in first: # row[0] = clearing solution id
IndexError: list index out of range
如果我運行 print(len(first)
它說190.所以我不知所措
import csv
#create a dict from first csv, with clearing solution id as key
with open("WEEKLY DDS PAYMENT UPLOADS 3-30-15--4-3-15 (1).csv", "r") as f:
first = {rows[0]: rows[1:] for rows in list(csv.reader(f))}
# compare second csv and append rank
with open("report1428344317924.csv", "r") as f:
for row in csv.reader(f):
if row[0] in first: # row[0] = clearing solution id
first[row[0]].append(row[1]) # row[1] = rank
# convert dict back to list
merged = [(k,) + tuple(v) for k, v in first.items()]
# write list to output csv
with open('output.csv', "w") as f:
csv.writer(f).writerows(merged)
在'if row [0]'之前放置'print row'語句來查看'row'變量中真正的內容。 (提示:這不是有任何索引訪問元素)。 –
錯誤可能是由於您的csv文件中有空行 - 是否刪除了空行?你可以在'csv.reader(f):'行中的行之後用'print row'來測試。 – vikramls