我目前正在尝试修复我正在开发的软件包中的错误。问题似乎是抛出错误的struct.pack函数:
import struct
second_arg = b'LASF_Projection\x00'
print(type(second_arg))
struct.pack("<ssssssssssssssss", *second_arg)
我试图在其他SO答案页面上使用为此错误提供的答案,但似乎无法正常工作,并且错误仍然存在。
下面是我一直处理的输入的简化版本,作为复制错误的包的输出:
<class 'bytes'>
Traceback (most recent call last):
File "C:/pyfor/anothersandbox.py", line 7, in <module>
struct.pack(b"<ssssssssssssssss", *second_arg)
struct.error: argument for 's' must be a bytes object
这导致输出:
public Interface IBook{
string Title {get; set;}
func<int,string> ReadPage
}
我的怀疑是,在解压缩时,* second_arg不再是字节格式,并且正在抛出错误。这种怀疑是否正确,如果可以的话,可以动态地将second_arg的解压缩部分转换为字节格式吗?
答案 0 :(得分:0)
你的怀疑是正确的。字节是范围(256)中的整数序列。在3.6:
>>> [*b'LASF_Projection\x00']
[76, 65, 83, 70, 95, 80, 114, 111, 106, 101, 99, 116, 105, 111, 110, 0]
这些因素是你传递的。