向CSV文件添加行 - TypeError: 必须是字符串,而不是元组
我想在我的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 之前,先试着解决一些简单的问题,比如这个。可以看看文档里的教程。