4. 编写proto文件,内容如下:
message testinfo { required int32 devtype = 1; required int32 devid = 2; required int32 unitid = 3; required int32 chlid = 4; optional int32 testid = 5 [default = 0]; required bytes stepdata = 6; }
import test2_pb2 import sys testinfo = test2_pb2.testinfo() testinfo.devtype = 100 testinfo.devid = 2 testinfo.unitid = 3 testinfo.chlid = 4 testinfo.testid = 200 testinfo.stepdata = b‘abc‘ print(testinfo, testinfo.devtype) out = testinfo.SerializeToString() print(out) decode = test2_pb2.testinfo() decode.ParseFromString(out) print(decode)
7. 在整个测试中,会发现很多protobuf里的py代码并不能运行,因此需要一个一个错误进行修改,主要有如下几方面:
1)long改为int
2) unicode改为str
3) basestring改为str
4) from cStringIO import StringIO改为from io import StringIO
5) xrange改为range
6) iteritems改为items
7) except UnicodeDecodeError, e:改为except UnicodeDecodeError as e:
主要就是参考从py2转换为py3的资料,就基本上可以修改完成。
蔡军生 QQ:9073204 深圳
原文地址:http://blog.csdn.net/caimouse/article/details/45339861