Python ValueError:无法将字符串转换为浮点:(115.985)

Python ValueError:无法将字符串转换为浮点:(115.985),python,string,scale,Python,String,Scale,我正在接收天平上的数据。当我收到来自该刻度的数据时,表格如下:b'1G 15.985lb\r\n'所以我只想保留我的115.985。b'1G 15.985lb\r\n'不是硬编码的,它是由我的刻度返回的字节。这就是为什么我需要解码,如果你尝试它,它将是115.985,因为在G之前是1,但这是另一个问题,稍后我只想在我从刻度接收数据时将我的115.985置为浮点,它是以字节为单位的,所以我使用serialString。解码“utf-8”来将其转换为字符串,这样我就可以只保留带有:finalweig

我正在接收天平上的数据。当我收到来自该刻度的数据时,表格如下:b'1G 15.985lb\r\n'所以我只想保留我的115.985。b'1G 15.985lb\r\n'不是硬编码的,它是由我的刻度返回的字节。这就是为什么我需要解码,如果你尝试它,它将是115.985,因为在G之前是1,但这是另一个问题,稍后我只想在我从刻度接收数据时将我的115.985置为浮点,它是以字节为单位的,所以我使用serialString。解码“utf-8”来将其转换为字符串,这样我就可以只保留带有:finalweight=re.sub'[^\d\.]',serialString\u decode的数字

但我需要这个数字是浮动的,这样我就可以在库存中使用它来做一些数学运算。所以我尝试使用:finalweight=floatfinalweight,但我一直遇到这样的错误:`ValueError:无法将字符串转换为float':

我的字符串没有任何“,”或空格。尝试了很多东西,但找不到我的代码有什么问题

import re

serialString = "b' 1G      15.985lb \r\n'"
serialString_decode=serialString.decode('utf-8') #Decode bytes to str 
finalweight = re.sub('[^\d\.]', '', serialString_decode) # Keep number
finalweight = float(finalweight) # try to put the string in float
print(finalweight)

有一个浮点数,这样我就可以用它来计算了。它在python2.7 macOS Mojave中打印115.985。您的代码无法将python3用作AttributeError:“str”对象在python3中没有属性“decode”

这是python3的解决方案


一个可能的改进是对serialString的值进行硬编码,因此我们有了可运行的代码。感谢您的回复,我硬编码并简化了代码。很抱歉,我是新手,请同时提供缺少的导入。编辑代码后,它应该是serialString=b'1G。我试着运行你的代码,它成功运行了。虽然我得到的答案是115.985,而不是15.985。是的,我还有一个问题,我会稍后解决,这是因为G之前的1,现在我只想用我的115.985做数学,那么python3有什么解决方案吗?我需要做解码,因为实际上b'1G 15.985lb\r\n'不是硬编码的,而是由我的刻度重新调整的字节。这就是为什么我需要解码,然后我只保留数字。这是一个单独的问题。请接受这一点,然后我们可以研究这个问题。如果存在任何错误,解码将无法解决该问题。这里接受的是从我的刻度值接收的字节数据的错误错误:无法将字符串转换为浮点:抱歉,现在是