我正在用复杂的分层信息抓取一些数据,需要将结果导出到 json。
我将项目定义为
class FamilyItem():
name = Field()
sons = Field()
class SonsItem():
name = Field()
grandsons = Field()
class GrandsonsItem():
name = Field()
age = Field()
weight = Field()
sex = Field()
当蜘蛛运行完成时,我会得到一个打印的项目输出,比如
{'name': 'Jenny',
'sons': [
{'name': u'S1',
'grandsons': [
{'name': u'GS1',
'age': 18,
'weight': 50
},
{
'name':u'GS2',
'age': 19,
'weight':51}]
}]
}
但是当我运行时scrapy crawl myscaper -o a.json
,它总是说结果“不是 JSON 可序列化的”。然后我将项目输出复制并粘贴到 ipython 控制台并使用 json.dumps(),它工作正常。那么问题出在哪里?这让我发疯了……