我有一个小端的十六进制字符串(例如,“ E61000003C9BFAE53893”),我试图将其转换为双精度型。我尝试了以下方法:
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转换为浮点数)会很容易,但是事实证明,这比我预期的更具挑战性。
答案 0 :(得分:0)
0xE61000003C9BFAE53893
太长,无法翻倍。双精度数是8个字节,即9 ... ish?如果您查看输出中倒数第二个,则为“ 0xe58
”。
struct.unpack
仅接受8个字节的缓冲区。