Python 读取CSV文件时替换字符

Python 读取CSV文件时替换字符,python,Python,我想用字符('.'替换所有字符(',')) 我尝试使用以下代码: spamReader = csv.DictReader(base64.b64decode(self.file_name).decode('utf-8').split('\n'), delimiter=';') for row in reversed(list(spamReader)): for k, v in row.items(): row[k] = k.replace(',', '.

我想用字符('.'替换所有字符(','))

我尝试使用以下代码:

spamReader = csv.DictReader(base64.b64decode(self.file_name).decode('utf-8').split('\n'), delimiter=';')
    for row in reversed(list(spamReader)):
         for k, v in row.items():
         row[k] = k.replace(',', '.') 

但是,这不起作用。需要帮忙吗

我认为您的最后一行没有正确缩进-它还需要4个空格

另外,我认为您正在用修改过的k替换行[k];您可能打算将第[k]行替换为修改过的v。我在这里看到两件事:

  • 文件引用的base64编码部分对我来说有点奇怪,但如果它打开正确,我想这不应该是问题所在

  • 您正在修改同时迭代的对象。我认为你应该避免这样做,因为它可能会导致奇怪的行为,如果它起作用的话。(). 最好是将数据存储在新对象中

  • 我尝试在这段代码中修复这两个问题,由于我不确定什么数据结构最适合您的后续程序,因此选择了一些您应该能够使用的内容,这些内容与DictReader返回的OrderedICT非常相似:

    new_data = []
    with open('test.csv') as file:
        reader = csv.DictReader(file, delimiter=';')
        for row in reader:
            new_row = []
            for key in row:
                entry = (key, row[key].replace(',','.'))
                new_row.append(entry)
            new_data.append(new_row)
    

    希望有帮助!:)

    您的代码格式是否与问题中显示的相同?“无效”没有提供足够的信息。欢迎使用StackOverflow。为什么要使用DictReader?请提供预期的[minimal,Repeatable example()。您发布的代码在最后一行出现语法错误时失败,然后在未定义变量时失败。请将第一行替换为数据结构的简单硬编码示例。添加
    print
    语句以显示结果。