![](/img/trans.png)
[英]AttributeError: 'Add' object has no attribute 'log' Python
[英]object has no attribute 'add' on python's protobuf
我想在python的protobuf的API上测试嵌套消息。
我的原始ndemo.proto
文件是:
package ndemotest;
message BaseRequest
{
required bytes Key = 1;
}
message ContRequest
{
required BaseRequest baseRequest = 1;
optional string Url = 2;
}
我的python ndemo.py
代码是:
import binascii
import ndemo_pb2
contReq = ndemo_pb2.ContRequest()
contReq.Url="www.google.com"
base_request = contReq.baseRequest.add()
base_request.Key="12345"
packed_data = contReq.SerializeToString()
print 'sending "%s"' % binascii.hexlify(packed_data)
当我以python ndemo.py
运行脚本时,出现错误
追溯(最近一次调用):文件“ ndemo.py”,第8行,位于base_request = contReq.baseRequest.add()中AttributeError:“ BaseRequest”对象没有属性“ add”
repeated
字段只有add()
,这就是重点。
对于您的情况,由于required
baseRequest
,您只需将值直接分配给BaseRequest
的字段BaseRequest
,例如:
contReq = ndemo_pb2.ContRequest()
contReq.baseRequest.key = "12345"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.