在Python中将字符串转换为浮点和整数(如果需要)

在Python中将字符串转换为浮点和整数(如果需要),python,python-3.x,string,integer,Python,Python 3.x,String,Integer,我必须调用一个API,它有时以字符串格式返回数值,“288”而不是288,或者“0.1523”而不是0.1513。还有一些时候,我会得到正确的数值,39 如何使函数将其格式化为正确的值?这意味着: 如果我得到“288”将其转换为整数:288 如果我得到“0.323”将其转换为浮点:0.323 如果我得到288保持原样(它已经是一个整数了) 如果我得到0.323保持原样(它已经是一个浮动) 这是我的尝试。问题是,这也会将所有的浮点数转换成整数,我不希望这样。有人能帮帮我吗 def parse_

我必须调用一个API,它有时以字符串格式返回数值,
“288”而不是
288
,或者
“0.1523”而不是
0.1513
。还有一些时候,我会得到正确的数值,
39

如何使函数将其格式化为正确的值?这意味着:

  • 如果我得到
    “288”
    将其转换为整数:
    288
  • 如果我得到
    “0.323”
    将其转换为浮点:
    0.323
  • 如果我得到
    288
    保持原样(它已经是一个整数了)
  • 如果我得到
    0.323
    保持原样(它已经是一个浮动)
这是我的尝试。问题是,这也会将所有的浮点数转换成整数,我不希望这样。有人能帮帮我吗

def parse_value(value):
    try:
       value = int(value)
    except ValueError:
        try:
            value = float(value)
        except ValueError:
            pass
提前感谢

使用以下内容:

def convert(self, value)
    a=value
    b=float(a)
    if(b==int(b)):b=int(b) 
    
    print(b)
使用以下内容:

def convert(self, value)
    a=value
    b=float(a)
    if(b==int(b)):b=int(b) 
    
    print(b)

这对你有用吗

def parse_value(value):
    f = float(value)
    r = f if f != int(f) else int(f)
    return r

这对你有用吗

def parse_value(value):
    f = float(value)
    r = f if f != int(f) else int(f)
    return r

为什么要区分float和int?对于大多数用例,
float(value)
就足够了。为什么要区分float和int?对于大多数用例,
float(value)
就足够了。