我有一个小端十六进制字符串(例如,'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 字节缓冲区。