¿Cómo implementar un elemento anidado en scrapy?

Estoy raspando algunos datos con información jerárquica compleja y necesito exportar el resultado a json.

Definí los artículos como

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

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

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

y cuando la araña se ejecute, obtendré una salida del artículo impreso como

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

pero cuando corroscrapy crawl myscaper -o a.json, siempre dice que el resultado "no es serializable JSON". Luego copio y pego la salida del elemento en la consola ipython y utilizo json.dumps (), funciona bien. ¿Dónde está el problema? esto me está volviendo loco ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta