向CSV文件添加行 - TypeError: 必须是字符串,而不是元组

3 投票
1 回答
5728 浏览
提问于 2025-04-18 02:10

我想在我的CSV文件中添加一行,格式是“名字, 值”。这是我的CSV文件:

Japanese Yen,169.948
US Dollar,1.67
Pound Sterling,1
Euro,5.5

下面是负责往CSV文件添加一行的代码部分:

def add():         
    addCurrency = input("What currency would you like to add: ")
    newRt = float(input("Please enter the new exchange rate from Pound Sterling: "))
    adding = str(addCurrency), str(newRt)
    file = open('exchangeRate.csv', 'a')
    file.write(adding)

1 个回答

4

在提问之前,先自己测试一下。你可以在 file.write(adding) 之前加一句 print(adding) 或者 print(adding.__repr__()),这样就能看到 Python 对你的 adding 实例有什么问题。你会发现它的内容像是 ('Euro', '5.5'),这其实是一个元组。如果 Python 报错说它需要一个字符串,而你传过去的是一个元组,那就是问题所在了。首先,别把 newRt 的输入转换成浮点数,因为你需要它作为字符串。你需要做的是 adding = ','.join((addCurrency, newRt)) + '\n',或者 adding = '{},{}\n'.format(addCurrency, newRt),或者 adding = addCurrency + ',' + newRt + '\n'。在问 Stack Overflow 之前,先试着解决一些简单的问题,比如这个。可以看看文档里的教程。

撰写回答