在将十六进制字符串转换为双精度时遇到问题



我有一个小端十六进制字符串(例如,'E61000003C9BFAE53893'(,我正在尝试将其转换为双精度。我尝试了以下方法:

struct.unpack('<d', binascii.unhexlify('E61000003C9BFAE53893'))

但我不断得到

struct.error: unpack requires a buffer of 8 bytes

我检查了binascii.unhexlify('E61000003C9BFAE53893'(的输出,它看起来是正确的:

>> print (binascii.unhexlify('E61000003C9BFAE53893'))
b'xe6x10x00x00<x9bxfaxe58x93'

所以我不确定问题是什么。

对于某些上下文,我有一堆编码为 WKB 的坐标数据,但 geopandas 仅支持 WKT。我认为编写一个函数来将一个转换为另一个(或将 WKB 转换为浮点数(很容易,但事实证明它比我预期的更具挑战性。

0xE61000003C9BFAE53893太长了,不能成为双精度。双精度是 8 个字节,那是 9...ish?如果你看一下输出中倒数第二个,它是" 0xe58 "。

根据错误消息,struct.unpack仅接受 8 字节缓冲区。

最新更新