Python 2.7 Python csv文件确定数据类型
新来的学生,请原谅我的无知,我已经找了很多,但没有找到解决我问题的办法。我需要导入一个包含混合数据类型[int、float和string]的CSV文件,确定数据类型,然后对int和float进行数学运算 问题是csv阅读器将所有内容转换为字符串(或者它们已经是字符串?)。我可以尝试转换成float,如果它抛出一个错误消息,我知道它是一个字符串,但是我如何判断它是否是一个float,因为我的程序需要在两者之间进行判断 我只允许导入CSV,不允许导入其他内容。这是我第一年学习python的第二门课程,我真的不知道如何做到这一点 编辑,找到一个与我的问题类似的答案,但它仍然返回错误的答案,int通常(但不总是)仍然以字符串类型返回:Python 2.7 Python csv文件确定数据类型,python-2.7,csv,Python 2.7,Csv,新来的学生,请原谅我的无知,我已经找了很多,但没有找到解决我问题的办法。我需要导入一个包含混合数据类型[int、float和string]的CSV文件,确定数据类型,然后对int和float进行数学运算 问题是csv阅读器将所有内容转换为字符串(或者它们已经是字符串?)。我可以尝试转换成float,如果它抛出一个错误消息,我知道它是一个字符串,但是我如何判断它是否是一个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>')
导入csv
测试=[
#(型式、试验)
(int,int),
(浮动,浮动),
]
def getType(值):
对于典型,在测试中测试:
尝试:
测试(数值)
返回类型
除值错误外:
打印“值错误”
持续
#没有对手
返回str
文件=打开('成人.csv')
reader=csv.reader(文件)
文件名='output.xml'
text=打开(文件名“w”)
text.write(“”)
text.write(“”)
好的,对不起,各位,我想我找到了一些我认为有用的代码:
应该更努力地搜索,尽管仍然不能可靠地给出正确的类型