Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python protobuf'的替代方案;s json_格式将protobuf消息转换为json_Python_Protocol Buffers - Fatal编程技术网

Python protobuf'的替代方案;s json_格式将protobuf消息转换为json

Python protobuf'的替代方案;s json_格式将protobuf消息转换为json,python,protocol-buffers,Python,Protocol Buffers,在protobuf的python实现中,Google protobuf提供了一个内置类json_格式化程序,用于将protobuf消息转换为Dict/json类型,例如MessageToDict和MessageToJson 描述于 内置方法通常工作得很好,但当数据变得更大时会变得非常缓慢 通过我上面提到的链接,谷歌说,“这是一个简单的开始,可以让JSON格式正常工作。由于它是基于反射的,所以它不像烘焙调用到生成的消息中那样快,而是一个更简单的实现。(此代码通常没有经过大量优化。)' 因此,我想知

在protobuf的python实现中,Google protobuf提供了一个内置类json_格式化程序,用于将protobuf消息转换为Dict/json类型,例如MessageToDict和MessageToJson

描述于

内置方法通常工作得很好,但当数据变得更大时会变得非常缓慢

通过我上面提到的链接,谷歌说,“这是一个简单的开始,可以让JSON格式正常工作。由于它是基于反射的,所以它不像烘焙调用到生成的消息中那样快,而是一个更简单的实现。(此代码通常没有经过大量优化。)'

因此,我想知道是否有任何替代方案可以以某种方式使它更快,或者在某个地方有一个“更高度优化的代码”?谢谢


编辑:API接受的MIMETYPE是application/protobuf或application/json。想要提高指定mimetype为application/json的请求的性能。

如果速度很重要,那么为什么要转换为json?你能告诉我你到底想做什么吗?谢谢!api接受的MIMETYPE是application/protobuf或application/json。希望提高指定mimetype为application/json的请求的性能。根据消息的复杂程度,编写自己的函数将其转换为json并不难。这有一个明显的缺点,那就是维护起来很痛苦。如果您的应用程序只需要接受JSON,那么将JSON解析为protobuf并像这样使用它可能会更快?消息本身并不复杂。嗯,好的,我会考虑的。谢谢使用反射的缓慢之处在于类需要查询自身以确定需要写入哪些字段。当您编写自己的编码器时,您可以跳过所有这些查询,因为您知道“我需要编写X、Y和Z”。