我有一個CSV文件,我正在該文件中將某些字段(列)讀入字典(以便一列作爲鍵和其他作爲值)。更確切地說,我有數字格式的鍵和字符串格式的值。但我在這裏有一個問題。在CSV文件中,我有相同數字與多個字符串關聯的情況。所以當我試圖將我的字典打印到output.csv文件時,它確實按照我所希望的(key:value)格式打印它,但是它忽略了密鑰具有多個與其關聯的值的情況。從我觀察到的情況來看,只有與該關鍵字相關的最新值才被保留,舊值被覆蓋。當某些鍵具有多個值時,將字典打印到CSV文件
例如: 999測試1 999測試1 999的Test2 999 Test3的
在這種情況下,只有999:Test3的被打印在output.csv文件。我需要的是如果出現這種情況,它應該在output.csv文件上打印一條消息,如下所示。
999:有一個以上的測試
我怎樣才能實現呢?這是我迄今爲止編寫的代碼,用於輸出字典以輸出文件。但我需要一些幫助來結合上面的預期結果。
import csv
infile = open('input.csv',"rb")
reader = csv.reader(infile)
outfile = open('output.csv',"wb")
writer = csv.writer(outfile)
mydict = dict((rows[18],rows[19]) for rows in reader)
for key,value in mydict.items():
writer.writerow([key,value])
infile.close()
outfile.close()
任何幫助表示讚賞。
謝謝!
你是說在輸入文件,因爲你讀的列18和19,也可以是具有行第18列中的值與前一行相同? – mauve
python中的字典有唯一的鍵,所以你不能將Test分配給一個鍵。但是,您可以將一個列表分配給一個鍵。所以你可以做999 [Test1,Test1,Test2,Test3]。 – aph107
@mauve:是的,你說得對。我想識別這些行並相應地打印錯誤消息。 –