[Python]转换问题:浮点数 --> 字节数,反之亦然

[Python]Conversion issue: Float --> Bytes and viceversa

我正在为无法解决的问题而苦苦挣扎。 我正在开发客户端-服务器应用程序,在 python ofc 中,我需要发送一些 "float type" 数据,但 sock.sendto 需要发送一个 "bytes type" 变量。 我试过 struct.pack,我试过 numpy.array(这个让我发送整个数组,在这种情况下似乎是最好的模块)它们都有效,我可以发送我需要的数据 "bytes type"格式。 真正的问题是服务器端,我无法将接收到的数据(以字节为单位)转换为浮点数。 我试过这个: 1) Cast: float(data) ofc 它没有工作 2) "".join 变量,然后使用 float(data) ofc 转换它,这也不起作用

所以我很困惑。任何的想法?我真的需要阅读浮动服务器端。 谢谢

# sender side
data = struct.pack('!d', 3.1415)  # float -> bytes

# receiver side
x = struct.unpack('!d', data)  # bytes -> float

struct.unpack returns 解压缩值的元组。使用 x[0] 您将获得第一个(在本例中仅)值,即您想要的浮点数。

编辑: 请注意,python 浮点数实际上是双精度数,因此应该这样包装。