2014-04-10 44 views
1

試圖以格式向我的CSV文件添加一行; 「名稱,價值」。 下面是CSV文件:將一行添加到CSV文件 - TypeError:必須是str,而不是元組

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) 
+0

這產生了一個元組'add = str(addCurrency),str(newRt)'我想你想要'added = str(addCurrency)+ str(newRt)' – EdChum

+0

這個問題是我沒有得到它格式「name,Value」的格式爲「nameValue」,對於程序的其他部分來說這不是有用的。我還需要將它轉換爲字符串嗎? – user3165683

+0

在這種情況下,只需要執行'adds = str(addCurrency)+','+ str(newRt)'如果這個方法有效,我會發布回答 – EdChum

回答

1

好,提問前做一些測試。在file.write(adding)之前,您可以將print(adding)print(adding.__repr__())看作是您的adding實例的Pythons問題。你會看到它就像是一個元組('Euro', '5.5')。如果Python抱怨它是真的,它需要一個字符串,而不是你傳遞了元組的元組。首先,不要轉換爲浮動newRt輸入,因爲您需要它作爲字符串。您需要的是adding = ','.join((addCurrency, newRt)) + '\n'adding = '{},{}\n'.format(addCurrency, newRt)adding = addCurrency + ',' + newRt + '\n'。試着在提問之前找出這樣的簡單問題。閱讀文檔教程。

+0

這個錯誤然後會被接收到「adding =','。join((addCurrency,newRt )) TypeError:序列項目1:期望的str實例,發現浮點「我需要投加入到字符串? – user3165683

+0

別擔心我解決了這個問題,它需要被鑄成一個字符串 – user3165683

+0

哈,我沒有擔心!所有的方法都很好,我建議讓你的值增加一個可以附加到CSV的字符串。我甚至編輯過它們以在最後包含必要的換行符。祝你好運! – SzieberthAdam

相關問題