thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Surbhi Bhasin" <>
Subject unable to write serialized list of list in a text file
Date Wed, 01 Jun 2011 06:59:19 GMT
Hi All,

I am very new to thrift.

I have written  a AddressBook.thrift file. This file has a following


Struct A {

  1: required list<string> str1,

  2: required i32 int1,

3: required i64 int2


Struct B {

  1: required list<A> a1,

  2: required bool bool1


Struct C {

  1: required list<B> b1



I compile this thrift file using python compiler.

Then I create a python server ( which add/modifies
2-3 entries in b1 (which is list of B). Then it serializes it into
binary format using:


address_book =new  AddressBook()

transport = TSocket.TServerSocket('localhost', 9090)

tfactory = TTransport.TBufferedTransportFactory()

pfactory = TBinaryProtocol.TBinaryProtocolFactory()

server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)

transportOut = TTransport.TMemoryBuffer()

protocolOut = TBinaryProtocol.TBinaryProtocol(transportOut)


bytes = transportOut.getvalue()


Then it writes to the text file:


f = open(file_name, "wb")




While trying to convert to binary format, I get following error:



File "gen-py/addressBook/", line 267, in write

oprot.writeListBegin(TType.STRUCT, len(self.b1))

AttributeError: B instance has no attribute '__len__'


On debugging I found out that in generated file where all user
defined data types (struct in AddressBook.thrift) are defined, there is
no _len_ (self)/ len() method defined.


I am stuck over here as to how to proceed further. Can someone please
guide me through it.





  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message