我用python在csv中保存数据时遇到问题。这里的代码:
self.INPUT = [1,2,3,4,5]
self.InLab = {'car':'€','dog':'€','cat':'€','cat':'€','total':'€'}
with open('Input-Output/INPUT.csv', 'w', newline='') as file:
writer = csv.writer(file)
inp = []
for i,j,k in zip(self.INPUT,self.InLab.keys(),self.InLab.values()):
inp.append(writer.writerow([j, i, k]))
我的问题是,当我将给定的列表和给定的字典保存在csv中时,它只保存下一个:
car,1,€
dog,2,€
cat,3,€
total,4,€
我期待以下内容:
car,1,€
dog,2,€
cat,3,€
cat,4,€
total,5,€
为什么第二个";猫;没有考虑在内,我该如何解决?非常感谢。
字典中不能重复关键字。
你可以获得类似于你试图用元组列表所做的事情。例如:
self.INPUT = [1, 2, 3, 4, 5]
self.InLab = [('car','€'),('dog','€'),('cat','€'),('cat','€'),('total','€')]
with open('Input-Output/INPUT.csv', 'w', newline='') as file:
writer = csv.writer(file)
inp = []
for i, (j, k) in zip(self.INPUT, self.InLab):
inp.append(writer.writerow([j, i, k]))
写一个更好的问题
您的示例代码应该是开箱即用的,任何人都可以复制。它也不需要这么复杂。
字典
您将InLab
定义为{'car':'€','dog':'€','cat':'€','cat':'€','total':'€'}
,但如果将其打印到控制台中,您可以看到实际分配的值是:{'car': '€', 'dog': '€', 'cat': '€', 'total': '€'}
。这是因为字典不能包含重复的关键字。