当我使用 python 中的 csv 解析器读取逗号分隔的文件或字符串时,所有项目都表示为字符串。请参见下面的示例。
import csv
a = "1,2,3,4,5"
r = csv.reader([a])
for row in r:
d = row
d
[‘1’、‘2’、‘3’、‘4’、‘5’]
类型(d[0])
你可以这样做:
from datetime import datetime
tests = [
# (Type, Test)
(int, int),
(float, float),
(datetime, lambda value: datetime.strptime(value, "%Y/%m/%d"))
]
def getType(value):
for typ, test in tests:
try:
test(value)
return typ
except ValueError:
continue
# No match
return str
>>> getType('2010/1/12')
<type 'datetime.datetime'>
>>> getType('2010.2')
<type 'float'>
>>> getType('2010')
<type 'int'>
>>> getType('2013test')
<type 'str'>
关键在于测试顺序,例如 int 测试应该在 float 测试之前。对于日期,您可以为您想要支持的格式添加更多测试,但显然您无法涵盖所有可能的情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)