Python 如何确定字符串值的数字类型?
我正在从数据库中读取默认插入为字符串的数字数据,并应用规则处理这些数字,但当遇到的值类似于Python 如何确定字符串值的数字类型?,python,python-3.x,Python,Python 3.x,我正在从数据库中读取默认插入为字符串的数字数据,并应用规则处理这些数字,但当遇到的值类似于-1.03432e+006或-1.03426e+006时,它会失败,即 id transferred speed values --- ------------------------ 0 4 1 3 2 9 3 2 4 -1.03432e+006 5 -1.03427e+006 6 -1.03426e+006 7 8 1
-1.03432e+006
或-1.03426e+006
时,它会失败,即
id transferred speed values
--- ------------------------
0 4
1 3
2 9
3 2
4 -1.03432e+006
5 -1.03427e+006
6 -1.03426e+006
7
8 12
def process_out_transferred_speed(value):
passed_values = []
failed_values = []
if value!= None or value!= " ":
if int(value) < 0 or int(value) > 48:
passed_values.append(value)
else:
failed_values.append(value)
id传输的速度值
--- ------------------------
0 4
1 3
2 9
3 2
4-1.03432e+006
5-1.03427e+006
6-1.03426e+006
7.
8 12
def过程输出传输速度(值):
传递的_值=[]
失败的_值=[]
如果值!=无或值!=" ":
如果int(值)<0或int(值)>48:
传递的\u值。追加(值)
其他:
失败的\u值。追加(值)
当第一个条件读取值-1.03432e+006
时,int()的文本无效对于基数10:“-1.03432e+006”
问题出现了,这是合理的,因为值是string
,它被转换为int
,但这对于-1.03432e+006
是不可能的,因为int
不支持此值
我的问题是:如何从这个
字符串中确定值的类型,以便插入一个规则来避免这个问题?python的方法就是尝试它并捕获异常
try:
int(value)
passed_values.append(value)
except ValueError:
failed_values.append(value)
您可以使用float(value)
来解析。int(float('-1.03432e+006'))
。但是如果我只想读取int值并避免浮点呢?我该怎么做?第7行的空/空字符串也会有问题。