Scrapy输出CSV指定顺序的列表

scrapy执行这个脚本cmdline.execute("scrapy crawl detail -o ductdetail.csv")输出数据时,发现字段Item/Field的顺序不正确,因为Item中的数据是按照字典来输出的,因为字典是随机的无序的,所以也导致输出的excle表格中的数据也是无序的。
以下配置将解决上面的问题,然后按照你想要的顺序输出数据
1.在spiders的目录下新建一个类itemcsvexporter(目录一定要在spiders下),代码如下:
from scrapy.conf import settings
from scrapy.contrib.exporter import CsvItemExporter

class itemcsvexporter(CsvItemExporter):

    def __init__(self, *args, **kwargs):
        delimiter = settings.get('CSV_DELIMITER', ',')
        kwargs['delimiter'] = delimiter

        fields_to_export = settings.get('FIELDS_TO_EXPORT', [])
        if fields_to_export :
            kwargs['fields_to_export'] = fields_to_export

        super(itemcsvexport

2.在settings.py中新增如下代码,用来指定Item中Feild的顺序,也就是你想要数据输出顺序
FEED_EXPORTERS = {
    'csv': 'ljnew.spiders.itemcsvexporter.itemcsvexporter',
} #这里假设你的project名字为ljnew

FIELDS_TO_EXPORT = [
    'productname',
    'productprice',
    'prime',
    'fee',
    'discount',
    'overseapurchas',
    'productsize',
    'productcolor',
    'producturl',
]
3.目录截图如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值