I am using protocol buffers in python and I have a Person
message
repeated uint64 id
but when I try to assign a value to it like:
person.id = [1, 32, 43432]
I get an error: Assigment not allowed for repeated field "id" in protocol message object
How to assign a value to a repeated field ?
As per the documentation, you aren't able to directly assign to a repeated field. In this case, you can call
extend
to add all of the elements in the list to the field.If you don't want to extend but overwrite it completely, you can do:
This approach will also work to clear the field entirely:
For repeated composite types this is what worked for me.
taken from these comments How to assign to repeated field? How to assign to repeated field?
You can try using
MergeFrom
Check out these docs for the full list of Message methods available to you: https://developers.google.com/protocol-buffers/docs/reference/python/google.protobuf.message.Message-class