AttributeError: Assignment not allowed to composite field “task” in protocol message object

前端 未结 3 1116
执念已碎
执念已碎 2020-12-17 07:28

I\'m using protocol-buffers python lib to send data,but it\'s have some problems, so

Traceback (most recent call last):
  File \"test_message.py\", line 17,          


        
相关标签:
3条回答
  • 2020-12-17 08:08

    Try CopyFrom:

    ptask.task.CopyFrom(task)
    
    0 讨论(0)
  • 2020-12-17 08:14

    I'm new to protocol-buffers too and faced with the same problem. I've found this method helpful.

    I think it should work:

    task = yacc.task()
    task.id = 1000
    task.msg = u"test"
    ptask = yacc.task_info() 
    ptask.task.MergeFrom(task)
    
    0 讨论(0)
  • 2020-12-17 08:29

    I don't know protocol-buffers but I took a look at the docs and it says:

    You cannot assign a value to an embedded message field. Instead, assigning a value to any field within the child message implies setting the message field in the parent.

    So I'm assuming this should work:

    task = yacc.task()
    task.id = 1000
    task.msg = u"test"
    ptask = yacc.task_info() 
    ptask.task.id = task.id
    ptask.task.msg = task.msg
    
    0 讨论(0)
提交回复
热议问题