我有一个如下的 protobuf 文件。
syntax = "proto3";
message Message {
repeated bytes data = 1;
}
这是 Python 代码。
import test_pb2
message = test_pb2.Message()
with open("test.dat", mode='rb') as file:
message.data.extend(file.read())
这就是错误。
Traceback (most recent call last):
File "./test.py", line 7, in <module>
message.data.extend(file.read())
TypeError: 48 has type int, but expected one of: bytes
我也尝试了“read_bytes()”,类似的错误。
下面的代码运行良好。
x = list()
with open("test.dat", mode='rb') as file:
x.extend(file.read())
看起来,重复对象不像列表那样工作。
尝试:
file.read()
返回bytes
,但你需要Iterable[bytes]