我正在寫一個已經有protobuf消息定義的python應用程序。但是,我們需要使用自定義線路格式(我相信這是正確的術語)。如何使用谷歌Protobuf自定義編碼/解碼
你(在Python中)如何覆蓋基編碼函數?
我查看了encoder.py
,這是一個嵌套仿函數的迷宮。那麼我需要什麼來修補(或其他)來指定我自己的編碼?
謝謝。
我正在寫一個已經有protobuf消息定義的python應用程序。但是,我們需要使用自定義線路格式(我相信這是正確的術語)。如何使用谷歌Protobuf自定義編碼/解碼
你(在Python中)如何覆蓋基編碼函數?
我查看了encoder.py
,這是一個嵌套仿函數的迷宮。那麼我需要什麼來修補(或其他)來指定我自己的編碼?
謝謝。
我不會推薦嘗試猴子修補編碼功能。你幾乎肯定會破壞一些東西。
你可以做的是寫一個獨立的函數,通過反射以任意方式編碼protobuf。有關此示例,請參閱Protobufs本身中的text_format.py
模塊。該模塊完全基於公共描述符和反射接口以可替換的可讀格式對消息進行編碼和解碼。您可以按照相同的模式編寫任何格式的編碼器/解碼器。
呃,爲什麼要用protobuf? – rightfold
Protobuf ====「電線格式」。如果你拿走它:*沒有任何東西*。你想做什麼?爲什麼? –
由於現有的協議非常複雜,並且已經使用原始文件進行了定義。我現在試圖在python中編寫一個測試程序,並且想重寫編碼。我很確定我讀了protobuf支持自定義編碼的地方,但我找不到任何示例代碼。 – Kurt