我正在将csv文件导入python。正如所料,它创建了包含每个值的列表作为字符串,但我想避免这种情况。有没有办法让python检测到一个值实际上是一个int,即使它看起来像这样' 24'?
谢谢。
答案 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就是你所寻找的。 p>
print ast.literal_eval('[1, 2, 3]') == [1, 2, 3]
print ast.literal_eval('23') == 23
Python也有eval
命令,但它不安全,因为非数据类型命令也可以通过此函数处理有害目的。
答案 2 :(得分:-1)
许多不同的模块支持这一点,其中pandas。 read_csv
可以推断出数据类型。