mbg*_*irp 4 python protocol-buffers
我知道使用 protobuf 的正常方法是创建 .proto,然后将其编译成相关类 - Java、Python 等。我有一个需求,可能需要在 Python 代码中解析 .proto 文件。有没有人尝试为 .proto 文件创建自己的解析器?是否建议始终编译类而不是直接解析 .proto?
它可能不会直接帮助您,但是是的,我已经编写了自己的解析器(实时演示,解析器源代码)。这段代码是 C# 因此它可能无济于事,但显然是可能的。我开始一个分支,7天前,现在它基本上是功能完善,包括解析器,发电机和一个交互式网站的语法错误高亮显示-因此它不一定是一个巨大的工作量。
然而!您可能会发现仅通过 shell 执行“protoc”(在maven 上可用)更容易。如果您使用-oFILE/--descriptor_set_out=FILE开关(同样的事情,替代语法),那么它会解析输入 .proto 文件并写入一个FileDescriptorSet从descriptor.proto序列化的文件。这意味着您可以使用常规工具以您选择的语言为 descriptor.proto 生成代码,然后将文件反序列化为一个FileDescriptorSet实例。完成后:您只需遍历对象模型即可查看文件、消息、枚举、字段等。 IIRC 一些 protobuf 实现支持完全从描述符(这是 protoc 发出的)工作,无需代码生成步骤。
| 归档时间: |
|
| 查看次数: |
1107 次 |
| 最近记录: |