我可以用lengthPrefix将c#类反序列化为Python类吗?

我可以用lengthPrefix将c#类反序列化为Python类吗?,c#,python,protocol-buffers,C#,Python,Protocol Buffers,我用c#中的ProtoBuf序列化了很多数据 一位同事希望使用Python读取这些文件 这可以通过Python类而不是c#来实现吗 下面是c#类: 这看起来像是protobuf-net;幸运的是,该库包含一个工具,可以根据它对您的模型的看法给出.proto模式: var schema = Serializer.GetProto<TickRecord>(); 其中,bcl.DateTime是“bcl.proto”中描述的protobuf net复杂数据类型 坦率地说,我建议您使用un

我用c#中的ProtoBuf序列化了很多数据

一位同事希望使用Python读取这些文件

这可以通过Python类而不是c#来实现吗

下面是c#类:


这看起来像是
protobuf-net
;幸运的是,该库包含一个工具,可以根据它对您的模型的看法给出.proto模式:

var schema = Serializer.GetProto<TickRecord>();
其中,
bcl.DateTime
是“bcl.proto”中描述的protobuf net复杂数据类型

坦率地说,我建议您使用unix时间将日期时间更改为
长的
——这样会使事情简单得多。这给了你:

message TickRecord {
   required sfixed64 DT = 1 [default = 0];
   required double BidPrice = 2 [default = 0];
   required double AskPrice = 3 [default = 0];
   required sfixed32 BidSize = 4 [default = 0];
   required sfixed32 AskSize = 5 [default = 0];
}
您可以将其提供给您的同事,他们可以在其环境中运行协议缓冲区所需的
protoc
或任何其他平台/库工具,并且应该进行设置。序列化格式是有意跨平台的,因此数据应该可以正常工作


注意:
*WithLengthPrefix
通过将数据包装在外壳中来工作。我需要查看您用于建议如何建议同事的确切参数


注意:将
DateTime
更改为
long
是一个突破性的更改;如果你不能做到这一点,你的同事将不得不查看bcl.proto(只需谷歌一下),并将其翻译成python。

这看起来像是
protobuf-net
;幸运的是,该库包含一个工具,可以根据它对您的模型的看法给出.proto模式:

var schema = Serializer.GetProto<TickRecord>();
其中,
bcl.DateTime
是“bcl.proto”中描述的protobuf net复杂数据类型

坦率地说,我建议您使用unix时间将日期时间更改为
长的
——这样会使事情简单得多。这给了你:

message TickRecord {
   required sfixed64 DT = 1 [default = 0];
   required double BidPrice = 2 [default = 0];
   required double AskPrice = 3 [default = 0];
   required sfixed32 BidSize = 4 [default = 0];
   required sfixed32 AskSize = 5 [default = 0];
}
您可以将其提供给您的同事,他们可以在其环境中运行协议缓冲区所需的
protoc
或任何其他平台/库工具,并且应该进行设置。序列化格式是有意跨平台的,因此数据应该可以正常工作


注意:
*WithLengthPrefix
通过将数据包装在外壳中来工作。我需要查看您用于建议如何建议同事的确切参数

注意:将
DateTime
更改为
long
是一个突破性的更改;如果您不能做到这一点,您的同事将不得不查看bcl.proto(只需谷歌一下),并将其翻译成python