检测我们拥有的数据类型

时间:2016-11-05 14:44:26

标签: python python-2.7

我正在将csv文件导入python。正如所料,它创建了包含每个值的列表作为字符串,但我想避免这种情况。有没有办法让python检测到一个值实际上是一个int,即使它看起来像这样' 24'?

谢谢。

3 个答案:

答案 0 :(得分:1)

您可能希望编写类似这样的函数来完成工作。 您可以将其展开以涵盖其他数据类型。

var obj_arr_new = _.cloneDeep(obj.arr);

这将提供 OP

def return_str_type(str):
    possible_type = [int, float]
    for dtype in possible_type:
        try:
            str = dtype(str)
            break   
        except:
            pass
    return type(str).__name__

print(return_str_type('4'))
print(return_str_type('4.3'))
print(return_str_type('s4'))

虽然你必须小心订单。例如int float str 检查应始终在int之前。

答案 1 :(得分:0)

ast.literal_eval就是你所寻找的。

print ast.literal_eval('[1, 2, 3]') == [1, 2, 3]
print ast.literal_eval('23') == 23

Python也有eval命令,但它不安全,因为非数据类型命令也可以通过此函数处理有害目的。

答案 2 :(得分:-1)

许多不同的模块支持这一点,其中pandasread_csv可以推断出数据类型。