首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何覆盖CsvItemExporter的join_multivalued选项

如何覆盖CsvItemExporter的join_multivalued选项
EN

Stack Overflow用户
提问于 2015-01-22 21:28:20
回答 2查看 303关注 0票数 2

CsvItemExporter有一个默认为逗号(=',')的选项join_multivalued

如何在我的scrapy项目中将其更改为另一个char?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-23 03:57:18

在您的自定义CSVItemExporter中这样设置:

代码语言:javascript
复制
from scrapy.conf import settings
from scrapy.contrib.exporter import CsvItemExporter

class CSVkwItemExporter(CsvItemExporter):

    def __init__(self, *args, **kwargs):
        kwargs['fields_to_export'] = settings.getlist('EXPORT_FIELDS') or None
        kwargs['encoding'] = settings.get('EXPORT_ENCODING', 'utf-8')

        super(CSVkwItemExporter, self).__init__(*args, **kwargs)

        self._join_multivalued = settings.get('MY_CSV_DELIMITER', ',')

其中,MY_CSV_DELIMITER是分隔符的示例设置。

票数 2
EN

Stack Overflow用户

发布于 2018-08-06 06:15:59

Scrapy版本1.5.0

your_scrapy_project/exporters.py

代码语言:javascript
复制
from scrapy.conf import settings
from scrapy.exporters import CsvItemExporter

class MyCsvItemExporter(CsvItemExporter):

    def __init__(self, *args, **kwargs):

        delimiter = settings.get('CSV_DELIMITER', ';')
        kwargs['delimiter'] = delimiter

        super(MyCsvItemExporter, self).__init__(*args, **kwargs) 

your_scrapy_project/settings.py

代码语言:javascript
复制
FEED_EXPORT_ENCODING = 'utf-8'

FEED_EXPORTERS = {
    'csv': 'your_scrapy_project.exporters.MyCsvItemExporter',
}

CSV_DELIMITER = ';'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28089977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档