键入存储在列表中的字符串中包含的值的推断

时间:2014-01-03 23:21:38

标签: python csv types

我试图找出如何在CSV文件的列上做一些很好的类型推断。 有没有可能告诉我的库,例如,列只包含整数? 所有值当然都以字符串格式提供。

如果这种类型的任何东西都不存在,我会编写自己的工具,但对我来说这样的基本任务在某个地方没有库对应物似乎很奇怪。

2 个答案:

答案 0 :(得分:1)

Regular expressions对此有好处,在Python中,你可以使用这样的东西:

import re

def str_is_num(s):
    number_pattern = re.compile("-?^\d+(\.\d+)?$")
    return re.match(number_pattern, s) != None

要检查单元格是否为数字,您可以评估str_is_num(cell)

答案 1 :(得分:1)

为什么不采用直截了当的做法?

  • 如果所有值都可以解析为整数,则列为整数
  • 否则,如果所有值都可以解析为双精度数,则列为双精度数
  • 否则,列是所有字符串

为什么没有这个库的原因可能是因为使用现有字符串int和string来实现双转换函数是微不足道的。