como implementar o item aninhado em escassa?

Eu estou raspando alguns dados com informações hierárquicas complexas e preciso exportar o resultado para json.

Eu defini os itens como

class FamilyItem():
    name = Field()
    sons = Field()

class SonsItem():
    name = Field()
    grandsons = Field()

class GrandsonsItem():
    name = Field()
    age = Field()
    weight = Field()
    sex = Field()

e quando a aranha corre completa, eu vou ter uma saída de item impresso como

{'name': 'Jenny',
   'sons': [
            {'name': u'S1',
             'grandsons': [
                   {'name': u'GS1',
                    'age': 18,
                    'weight': 50
                   },
                   {
                    'name':u'GS2',
                    'age': 19,
                    'weight':51}]
                   }]
}

mas quando eu corroscrapy crawl myscaper -o a.json, sempre diz que o resultado "não é JSON serializável". Então eu copio e colo a saída do item no console do ipython e uso o json.dumps (), ele funciona bem. Então, onde está o problema? isso está me deixando louca ...

questionAnswers(2)

yourAnswerToTheQuestion