Python 将dict列表作为CSV中的行写入

Python 将dict列表作为CSV中的行写入,python,csv,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 csvfil

我有一个简单的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的顺序并不重要)

如果我理解正确的话

而不是:

writer.writerows(unique_rows)
您希望执行以下操作:

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

如果我理解正确的话

而不是:

writer.writerows(unique_rows)
您希望执行以下操作:

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

writer.writerows(unique_rows.values())
——假设打印行的顺序无关紧要。我不知道您希望结果是什么。您说您想要“第[1]行中的最大值”——我在第[1]行中只看到一个值。从您的第一个csv文件示例中,您是否只希望看到
8、10、6、5、0的值?
writer.writerows(unique_rows.values())
——假设打印行的顺序无关紧要。我不清楚您希望结果是什么。您说您想要“第[1]行中的最大值”
——我在第[1]行中只看到一个值。从您的第一个csv文件示例中,您是否只希望值
8、10、6、5、0
?就是这样!我在前面尝试该语句时,省略了“values()”。谢谢对它们进行排序并不是什么大事,但由于我仍在学习这门语言,我将在下一步研究解决方案。我试图用“sort()”解决此解决方案,但遇到了问题。就是这样!我在前面尝试该语句时,省略了“values()”。谢谢对它们进行排序并不是什么大事,但由于我仍在学习这门语言,我将在下一步研究解决方案。我试图用“sort()”解决此解决方案,但遇到了问题。