我正在使用protocol-buffer python lib来发送数据,但是它有一些问题,所以
Traceback (most recent call last):
File "test_message.py", line 17, in <module>
ptask.task = task
File "build\bdist.win32\egg\google\protobuf\internal\python_message.py", line
513, in setter
AttributeError: Assignment not allowed to composite field "_task" in protocol message object.
src如下所示:
proto文件:
message task {
required int32 id = 1;
required string msg = 2;
}
message task_info {
required task task = 1;
}
python代码:
task = yacc.task()
task.id = 1000
task.msg = u"test"
ptask = yacc.task_info()
ptask.task = task # this line happen the runtime error
发布于 2014-04-01 04:33:05
试试CopyFrom
ptask.task.CopyFrom(task)
发布于 2013-12-28 05:59:25
我也是协议缓冲区的新手,也面临着同样的问题。我发现this method很有帮助。
我认为它应该是有效的:
task = yacc.task()
task.id = 1000
task.msg = u"test"
ptask = yacc.task_info()
ptask.task.MergeFrom(task)
https://stackoverflow.com/questions/18376190
复制相似问题