【问题标题】:Scrapy items change column nameScrapy 项目更改列名
【发布时间】:2021-10-21 13:35:58
【问题描述】:

有没有办法改变csv输出中的列名,例如,我有这样的scrapy项目:

import scrapy

class Myitems(scrapy.Item):
    recordi = scrapy.Field()

在我的蜘蛛脚本中我使用:

item['recordi'] = ....

我使用scrapy命令

scrapy crawl myspider -o data.csv

并且data.csv中的列名也是recordi,所以我的问题是,我可以更改列名吗,scapy.Field()是否有任何参数,我可以在其中定义列名,它保持recordi字段名称,但列名应为 Recor Di

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: python scrapy scrapy-item


【解决方案1】:

AFIAK 没有这样的机制内置 scrapy,当您在项目中定义字段名称时,您有不同的名称用于导出它。我认为您可以通过创建自定义的 CSV 导出器以编程方式完成此操作。当您使用此自定义专家时,它可以查找字段名称。您可以使用某种后处理脚本来获得类似的结果。

【讨论】:

  • 好的,谢谢。我教过这个有一些功能
【解决方案2】:

假设您遇到的问题是 field 名称必须遵守 python 变量名称语法,您可以简单地定义 field 如下,即以下格式允许字段名称包含诸如空格之类的字符无效的 Python 变量名。

import scrapy

class Myitems(scrapy.Item):
    def __init__(self):
        super().__init__()
        self.fields["Recor Di"] = scrapy.Field()

然后,您可以在您的蜘蛛中填充以下项目

item['Recor Di'] = ....

您的 csv 列名称也将是 Recor Di

【讨论】:

    猜你喜欢
    • 2022-11-08
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 2021-01-25
    相关资源
    最近更新 更多