将字典列表写为CSV格式的行

时间:2016-08-08 18:51:12

标签: python csv

我有一个简单的csv文件:

101,8
102,10
102,6
103,5
104,0

第二行和第三行的第[0]行有重复的条目,我希望保持最后一个(或更低的行[1]值)重复。我弄清楚如何使其正常工作的唯一方法是使用dict()进行排序,但现在我在使用正确格式写入csv文件时遇到问题。我的代码:

from operator import itemgetter
from pprint import pprint
import csv

with open('cards1.csv', 'rb') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    with open('cards2.csv', 'wb') as csvfile1:
        writer = csv.writer(csvfile1, delimiter=',')
        rows = iter(reader)
        sort_key = itemgetter(0)
        sorted_rows = sorted(rows, key=sort_key)
        unique_rows = dict((row[0], row) for row in sorted_rows)
        pprint (unique_rows) 
        writer.writerows(unique_rows)

打印:

{'101': ['101', '8'],
 '102': ['102', '6'],
 '103': ['103', '5'],
 '104': ['104', '0']}

但写入我的文件:

1,0,2
1,0,3
1,0,1
1,0,4

我希望它只是删除行[0]中具有行[1]中最大值的副本。谢谢(顺便说一下,创建的csv的顺序并不重要)

1 个答案:

答案 0 :(得分:0)

如果我理解正确的话。

而不是:

writer.writerows(unique_rows)
你想做点什么:

for row in unqiue_rows.values():
    writer.writerow(row)