协议缓冲不同语言

时间:2015-09-28 19:09:21

标签: python protocol-buffers

我试图在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!

1 个答案:

答案 0 :(得分:0)

您发布的链接中写的内容是真的,您必须使用某种分隔符来了解消息的开始和结束位置。在将数据推送到解码器之前,您还可以自行处理。