For anyone who might reach here for the same question. I suggest using 
extend instead of add and then give values to fields.  For example:

packetMessage.checkMessage.balanceUpdates.extend([balanceUpdateMessage])

This is much simpler and also easy for assigning object after 
deserialization and nested structures.

On Monday, June 24, 2013 at 3:44:48 PM UTC-4, Lotte R. Leben wrote:
>
> Hi Ilia,
>
> Am Montag, 24. Juni 2013 20:26:47 UTC+2 schrieb Ilia Mirkin:
>>
>> Try 
>>
>> x = packetMessage.checkMessage.balanceUpdates.add() 
>> x.tid = 111 
>> x.amount = 222 
>>
>
> works like a charm, thank you so much!
>  
>
>>
>> See https://developers.google.com/protocol-buffers/docs/pythontutorial 
>> for more info. 
>>
>> On Sun, Jun 23, 2013 at 9:49 AM, Lotte R. Leben <[email protected]> 
>> wrote: 
>> > Hi, 
>> > this might be quite the newbie question, but I haven't been able to 
>> find any 
>> > hints through googling, so here it goes: 
>> > What I'm trying to to is send orotobuf messages between an Android App 
>> a 
>> > Python Script containing (among other things) a list of key-value pairs 
>> (if 
>> > ints). 
>> > The solution that I came up with was just defining my own “tuple” as 
>> another 
>> > protobuf message and then including a repated field of said type, like 
>> so: 
>> > 
>> > message CheckMessage { 
>> > message BalanceUpdateMessage{ 
>> > required int32 transactionID = 1; 
>> > required sint32 amount = 2; 
>> > } 
>> > required int32 amount = 3; 
>> > required sint32 newBalance = 5; 
>> > repeated BalanceUpdateMessage balanceUpdates = 4; 
>> > } 
>> > 
>> > and then try to fill the balaceUpdates in Python (the checkMessages are 
>> > embedded in another packetMessage): 
>> > 
>> >         balanceUpdateMessage = 
>> > protoPackets_pb2.CheckMessage.BalanceUpdateMessage() 
>> >         balanceUpdateMessage.transactionID = 1111 
>> >         balanceUpdateMessage.amount = 2222 
>> > 
>> > 
>> > packetMessage.checkMessage.balanceUpdates.append(balanceUpdateMessage) 
>> > 
>> > But when I run this, I get the error: 
>> > 
>> > AttributeError: 'RepeatedCompositeFieldContainer' object has no 
>> attribute 
>> > 'append' 
>> > 
>> > ... I kind of expected my approach to fail, but not with an error 
>> message 
>> > like this :D 
>> > 
>> > So my question is: Is it even possible to send multiple key,value - 
>> pairs 
>> > with protobuf and if yes, how? Or if I'm on the right track: what is my 
>> > mistake? 
>> > 
>> > ( I know that one usually would set the contents of a “nested” message 
>> with 
>> > packetMessage.checkMessage.balanceUpdateMessage.transactionID = 333 (or 
>> so), 
>> > but since I'm dealing with a repeated field that neither works nor 
>> would it 
>> > make sense (to me, at least). ) 
>> > 
>> > -- 
>> > You received this message because you are subscribed to the Google 
>> Groups 
>> > "Protocol Buffers" group. 
>> > To unsubscribe from this group and stop receiving emails from it, send 
>> an 
>> > email to [email protected]. 
>> > To post to this group, send email to [email protected]. 
>> > Visit this group at http://groups.google.com/group/protobuf. 
>> > For more options, visit https://groups.google.com/groups/opt_out. 
>> > 
>> > 
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to