Python csv文件确定数据类型

时间:2015-03-17 05:00:32

标签: python-2.7 csv

新学生在这里请原谅我的无知,我已经搜索了很多,但没有找到解决问题的方法。我需要导入一个混合数据类型[int,float和string]的CSV文件,确定数据类型,然后对整数和浮点数进行数学运算。

问题是csv reader将所有内容转换为字符串(或者它们已经是字符串?)。我可以尝试转换为float,如果它抛出一条错误消息,我知道它是一个字符串,但我怎么知道它是否是一个浮点数,因为我的程序需要在两者之间确定?

我只能导入CSV而不能导入其他人。这是我的第二个第一年的python主题,并且真的不确定如何做到这一点。

编辑,找到一个似乎与我的问题类似的答案,但它仍然会返回错误的答案,但通常是,但并非总是如此,仍然以字符串类型返回:

 import csv


 tests = [
    # (Type, Test)
    (int, int),
    (float, float),

   ]

  def getType(value):
     for typ, test in tests:
     try:
         test(value)
         return typ
     except ValueError:
         print 'value error'
         continue
 # No match
 return str

    file = open('adult.csv')
    reader = csv.reader(file)
    filename = 'output.xml'
     text = open(filename, 'w')
    text.write('<?xml version="1.0"?>')
     text.write('<!DOCTYPE summary [')

     headers = reader.next()
     for i in headers:
     print '<name>'
     print i
     print '</name>'
     print '<dataType>' 
for a in i[1]:
    print getType[a]


#for row in fields:
  #  text = row[2]
  #  print type(text)
print '</dataType>'
#for value in i:
   # print type(value)




print '<!ELEMENT summary\n\n>'
#text.write('<element>')

1 个答案:

答案 0 :(得分:-1)

对不起每个人,我想我发现了一些我认为可行的代码:

determine the type of a value which is represented as string in python

应该更难搜索,但仍然不能正确地提供正确的类型