新学生在这里请原谅我的无知,我已经搜索了很多,但没有找到解决问题的方法。我需要导入一个混合数据类型[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>')
答案 0 :(得分:-1)
对不起每个人,我想我发现了一些我认为可行的代码:
determine the type of a value which is represented as string in python
应该更难搜索,但仍然不能正确地提供正确的类型