gpt4 book ai didi

python - 确定在 python 中表示为字符串的值的类型

转载 作者:太空狗 更新时间:2023-10-29 20:34:59 24 4
gpt4 key购买 nike

当我在 python 中使用 csv 解析器读取逗号分隔的文件或字符串时,所有项目都表示为字符串。请参见下面的示例。

import csv
a = "1,2,3,4,5"
r = csv.reader([a])
for row in r:
d = row<p></p>

<p>d
['1', '2', '3', '4', '5']
type(d[0])
<type 'str'>
</p>

我想确定每个值是字符串、 float 、整数还是日期。我如何在 Python 中执行此操作?

最佳答案

你可以这样做:

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 测试之前。对于日期,您可以为要支持的格式添加更多测试,但显然您无法涵盖所有​​可能的情况。

关于python - 确定在 python 中表示为字符串的值的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2103071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com