我有一个如下的 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()”,类似的错误。
尝试:
import test_pb2
message = test_pb2.Message()
with open("test.dat",mode="rb") as file:
i = [bytes(b) for b in file.read()]
message.data.extend(i)
print(message.data)
file.read()
返回 bytes
但你需要 Iterable[bytes]