如何确定String值的数字类型?

时间:2018-01-04 17:08:33

标签: python python-3.x

我正在从数据库中读取数字数据,默认情况下它是作为字符串插入的,我正在应用规则来处理这些数字,但遇到的值类似于@echo %Server% PS_EXE="/cygdrive/powershell.exe" @echo %Server% "wget user=%User% pwd= %pwd% http://artifactory/dev-package.zip" @echo %Server% "sleep 20s" 或{{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) 问题,这是合理的,因为值为-1.03432e+006并且它会转换为invalid literal for int() with base 10: '-1.03432e+006'但是string无法做到这一点,因为int不支持此值。

我的问题是:如何确定此-1.03432e+006的值类型,以便我可以插入规则来避免此问题?

1 个答案:

答案 0 :(得分:1)

Pythonic的方法是尝试它并捕捉异常。

try:
    int(value)
    passed_values.append(value)
except ValueError:
    failed_values.append(value)