如何格式化Scrapy导出

时间:2016-06-22 13:31:25

标签: python scrapy

我目前将我的已删除数据存储在要以.csv格式导出的项目中:

item = HobbyItem()
item['name'] = user.getName()
item['hobbies'] = user.getHobbies()

该项目声明如下:

name = scrapy.Field()
hobbies = scrapy.Field()

这导致csv格式如下:

name,hobbies
Tim, [['tennis'],['squash'],['music']]
Bob, [['rugby'],['polo']]

我真正想要的是:

name,hobbies
Tim, 'tennis'
Tim, 'squash'
Tim, 'music'
Bob, 'rugby'
Bob, 'polo'

有人知道如何修改输出来实现这个目标吗?

2 个答案:

答案 0 :(得分:0)

您没有为我提供足够的代码或解释,以确保这在您的特定代码中有效但

尝试:

for element in user.getHobbies():
    item['name'] = user.getName()
    item['hobbies'] = element[0]

这将为每个爱好创建1个元素,多次使用getName

答案 1 :(得分:0)

name = user.getName()
for hobby in user.getHobbies():
    if hobby:
        item = HobbyItem()
        item['name'] = name
        item['hobbies'] = hobby[0]
        yield item