我试图在Python中读取一个用Java编写的协议缓冲区文件,因为在调用ParseFromString()时遇到此错误,我遇到了问题。
File "build/bdist.linux-x86_64/egg/google/protobuf/message.py", line 182, in ParseFromString File "build/bdist.linux-x86_64/egg/google/protobuf/internal/python_message.py", line 795, in MergeFromString File "build/bdist.linux-x86_64/egg/google/protobuf/internal/python_message.py", line 819, in InternalParse File "build/bdist.linux-x86_64/egg/google/protobuf/internal/decoder.py", line 716, in SkipField File "build/bdist.linux-x86_64/egg/google/protobuf/internal/decoder.py", line 685, in _RaiseInvalidWireType google.protobuf.message.DecodeError: Tag had invalid wire type.
我尝试谷歌并看到此链接:http://comments.gmane.org/gmane.comp.lib.protocol-buffers.general/11996
我尝试编写一个简单的protobuf模式并用Python编写它,我也能用Python读取它。只有当文件是用Java创建的时候(我还没有尝试过C ++)我才能用Python读取它。
我想知道这是否真的如此? Mahalo all!
答案 0 :(得分:0)
您发布的链接中写的内容是真的,您必须使用某种分隔符来了解消息的开始和结束位置。在将数据推送到解码器之前,您还可以自行处理。