gpt4 book ai didi

Python解包错误

转载 作者:行者123 更新时间:2023-11-30 23:35:13 33 4
gpt4 key购买 nike

我在 python 解包方面遇到问题。

self.value = struct.unpack("<I", f.read(4))[0]

对于值:0x17df320 (25031456) 返回错误

<class 'struct.error'>: unpack requires a string argument of length 4

但对于值0x116fb00 (18283264) 来说是可以的。值一太大?将“I”更改为“L”?

<小时/>

我仍然有问题;/我的输出:http://pasteboard.s3.amazonaws.com/images/TjwtuTq.png 代码:

def deserialize(self, f):
buf = f.read(8)
log.error("\n#####################\nCTxOut f: %s \nf8: %s\nf8l: %i\n#####################" % (f.getvalue(), buf, len(buf)))
self.nValue = struct.unpack("<q", buf)[0]
self.scriptPubKey = deser_string(f)

错误:

[Failure instance: Traceback: : unpack requires a string argument of length 8

感谢您的帮助!

最佳答案

问题是 - 正如错误所述 - 您没有将长度为 4 的字符串传递给 unpack

f.read(4)

不一定返回 4 个字节,它可能返回 0 到 4 个字节之间的任何内容,具体取决于缓冲区中可用的字节数或流是否位于 EOF - 我猜这里就是这种情况。

尝试检查您传递给函数的字节数:

buf = f.read(4)
if len(buf) == 4:
self.value = struct.unpack("<I", buf)[0]
else:
... # handle condition

关于Python解包错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17503369/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com