python - 转换为 float 时出错

标签 python csv

我正在尝试使用 csv.DictReader 读取文件

我有一个应该是整数的字段。如果它是空的,我将把它设置为 DEFAULT 如果它是一个整数,我什么都不做。如果它不是一个整数,我检查它是否是一个带引号的整数(如'1234')。如果是这样,我将把它转换为整数。否则一个异常(exception)是提出。

如果它为空或它是一个整数,它会按预期工作。现在如果它是一个带引号的整数(如'1234'),则会引发异常integer invalid literal for float( ): '1234'.

在这种情况下不应该引发异常。

我觉得跟DictReader读取csv文件的方式有关系。 其他一切都很好。请帮忙

 if not line[key]:
    line[key]='DEFAULT'
 elif not isinstance(line[key], (int, long, float)) :                        
    try:
      line[key]=float(line[key])
    except Exception,e :
      print e

最佳答案

问题是单引号是字符串的一部分:

In [7]: float("'1234'")
ValueError: invalid literal for float(): '1234'

如果你删除它们,事情应该会起作用:

In [8]: float("'1234'".strip("'"))
Out[9]: 1234.0

关于python - 转换为 float 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6859991/

相关文章:

python - bq.py 不是分页结果

Python3 - 附加到不包含某些单词的数组行

python - 如何在带有嵌入层的keras中构建序列到序列自动编码器?

python - 在 Python 数组或 numpy 数组中过滤掉 nan 或 invalid 的更简单方法?

python - 用python解析xpath

python - 如何将列表加入字符串(警告)?

MySQL 使用逗号分隔值链接两个表

linux - 将 .csv 文件从 Linux 发送到 Windows

python - 如何检查 csv.DictReader 对象是否为空

javascript - jQuery 数据表、TableTools 插件按钮不可见