我在Python '\x005\x003\x00.\x000\x005\x006\x00'中有这个字符串,代表数字53.056

我试图将其转换为浮点数(float()),但是如果我尝试将其强制转换为浮点数,则会得到ValueError: could not convert string to float:

我读到每个以\x开头的字符都是ASCII字符,但我也知道在ASCII 5中是\x05而不是\x005,并且\x00是数字0而不是这种情况下的空值。

我也尝试用UTF-8进行编码,但没有结果。

那是什么编码,如何将字符串转换为浮点数?

最佳答案

字符似乎由空字节\x00分隔。
一个解决方案是:

s = b'\x005\x003\x00.\x000\x005\x006\x00'
float(s.replace(b'\x00',b''))

08-20 04:12