【问题标题】:Scrapy - yield nested dictionary to JSON file - doesn't workScrapy - 将嵌套字典生成到 JSON 文件 - 不起作用
【发布时间】:2021-08-22 14:44:36
【问题描述】:

编辑

正如 Georgiy 建议的那样,我尝试使用 dict 而不是 Item,结果是一样的。

编辑结束

尝试将 Scrapy 输出导出到 JSON 文件。项目应具有以下格式:

{'name':'Peter', 'attrs':{'attr1':<VAL>, 'attr2':<VAL>}}

问题是 Scrapy 只渲染 name。原因可能是attrs 是一个字典。

class CookieBotItem(scrapy.Item):
    name = scrapy.Field()
    attrs = scrapy.Field()

为了简单起见,我总是返回:

    yield CookieBotItem(name='Peter',
                        attrs={
                            'attr1': 'val1',
                            'attr2': 'val2'}
                        )

输出如下所示:

[
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"}
]

你知道如何让它工作吗?

【问题讨论】:

    标签: python json dictionary scrapy scrapy-item


    【解决方案1】:

    不确定此处是否使用 Item 类。

        yield {
               'name': 'Peter',
               'attrs':{'attr1': 'val1','attr2': 'val2'}
              }
    

    【讨论】:

    • 谢谢,但我试过了,不幸的是,它给了我同样的结果。我正在运行这个命令:scrapy crawl spider -a filepath=someval -o out.json
    • 导出的字段可以通过FEED_EXPORT_FIELDS设置来限制。您的项目启用了吗?
    • 天啊,是的,我忘记了我已经设置了这个设置...现在可以使用了,谢谢
    猜你喜欢
    • 2016-08-19
    • 1970-01-01
    • 2022-01-22
    • 2018-05-31
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 2018-08-18
    • 2023-03-19
    相关资源
    最近更新 更多