正在写入CSV文件。TypeError:writerows()参数必须是iterab

2024-10-01 11:33:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个货币兑换器,其中有代码和一个csv文件,其中csv文件可以编辑,以保存新的汇率使用。但我在写入文件和更改速率时遇到问题:

 def change():
    print()
    print()
    print()
    print("1) Change existing exchange rate.")
    print("2) Add new exchange rates.")
    print("3) Quit.")
    exRtFile = open ('exchangeRate.csv')
    exchReader = csv.reader(exRtFile)
    exchWriter = csv.writer(exRtFile)
    loop2=0
    while loop2==0:
        selected=int(input("Please select an option: "))
        if selected == 1:
            change = input("What rate would you like to change: ")
            changeRt = float(input("What would you like to change the rate to: "))
            for row in exchReader:
                currency = row[0]
                if currency == change:
                    crntRt = row[1]
                    crntRt = changeRt
                    exchWriter.writerows(crntRt)

输入/输出示例:

^{pr2}$

Tags: 文件csvtoinputrateexchangechangerow
1条回答
网友
1楼 · 发布于 2024-10-01 11:33:01

writeRows()从本质上讲,它期望一个包含一组值的变量,每个包含数据的值将被写入输出文件中的一行。在

因为您给writerows()一个float值,所以它的响应是告诉您它不知道如何在“Python speak”中将其转换为多行must be iterable意味着“我无法从您给我的项中获得多个值”。在

您的代码中可能还有许多其他问题。特别是:

 crntRt = row[1]
 crntRt = changeRt
 exchWriter.writerows(crntRt)

使我认为您希望在输出中看到row[1]的值,但您不会看到,因为下一行将用新的汇率覆盖该值。在

相关问题 更多 >