我有一个小端十六进制字符串(例如,'E61000003C9BFAE53893'),我正在尝试将其转换为double。我尝试过以下方法:
struct.unpack('<d', binascii.unhexlify('E61000003C9BFAE53893'))
但我一直在
struct.error: unpack requires a buffer of 8 bytes
我检查了binascii.unhexlify('E61000003C9BFAE53893')的输出,它看起来是正确的:
>> print (binascii.unhexlify('E61000003C9BFAE53893'))
b'\xe6\x10\x00\x00<\x9b\xfa\xe58\x93'
所以我不确定问题是什么。
对于某些上下文,我有一堆编码为WKB的坐标数据,但geopandas仅支持WKT。我认为编写一个函数将一个函数转换为另一个函数(或WKB到浮点数)会很容易,但它证明了我所期望的更具挑战性。
0xE61000003C9BFAE53893
太长,不能成为双倍。双是8个字节,即9 ... ish?如果你看一下输出中倒数第二个,那就是“0xe58
”。
根据错误消息,struct.unpack
只接受8字节缓冲区。