CSV阅读器以字符串形式保存时,会将数字转换为小数

时间:2019-04-04 19:34:38

标签: python file csv

我有一个同时包含单词和数字的CSV文件,但它们都以字符串形式读入。我的CSV文件如下所示:

Hello,50,Banana,100,Dog,80

使用CSV阅读器读入时,所有数字仍保留为字符串,但更改为50.0、100.0和80.0。有谁知道这是为什么,以及如何摆脱它?

这是我正在使用的代码(CSV文件与通常情况相反,这就是我使用此算法的原因:

with open(csvFinal) as file:
        for line in csv.reader(file):
            if len(line) > 0 and re.search("Token\d", line[1]):
                if line[-1] == "":
                    csvDict[line[1]] = line[2:-1]
                else:
                    csvDict[line[1]] = line[2:]

1 个答案:

答案 0 :(得分:0)

参考:

CSV Reader Manual

  

csv.reader(csvfile,方言='excel',** fmtparams)返回阅读器   将在给定csvfile中的行上迭代的对象。 csvfile可以   是支持迭代器协议并返回a的任何对象   字符串

  

从csv文件读取的每一行都作为字符串列表返回。没有   除非执行以下操作,否则将执行自动数据类型转换   指定了QUOTE_NONNUMERIC格式选项(在这种情况下,不加引号   字段转换为浮点数。

默认情况下,所有结果均为字符串,除非您使用引号,否则不执行任何强制数据填充。

在.csv中使用给定的示例:

.unknown

简单的代码:

     document.onkeydown = function user (event) {
    var key_press = String.fromCharCode (event.keyCode);
    document.getElementById("kp").innerHTML = key_press;
    return event;
    }
    console.log(event);

会返回:

Hello,50,Banana,100,Dog,80