scrapy 使用特殊字符(货币符号)保存JSON

kiz8lqtg  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(125)

我使用Scrapy从一个网站中提取一些值,其中一个字段是“price”,我得到了如下结果:

...

item = {
        "title": title, 
        "url" : url, 
        "price":  {
                    "symbol": the_currency_symbol,
                    "amount": float_number
                   }
        }

yield item

我将输出设置为JSON文件,并生成一个字典项。
问题是,当我打开包含这些项的输出JSON时,我看到了以下内容:

{
    "title": title, 
    "url" : url, 
    "price": {
        "symbol": "\u00a3",
        "amount": 12.99
         }
}

如何在JSON文件中看到正确的货币符号?

rnmwe5a2

rnmwe5a21#

Scrapy通常以ASCII编码生成JSON提要。您的JSON文件包含正确的数据,但要正确查看货币符号,您可以将输出JSON文件转换为UTF-8编码。
您可以通过设置FEED_EXPORT_ENCODING="utf-8"使Scrapy生成UTF-8编码的JSON。有关更多帮助,请参阅问题的答案:Scrapy json response convert in utf-8 encode和Scrapy文档https://docs.scrapy.org/en/latest/topics/feed-exports.html#std-setting-FEED_EXPORT_ENCODING。
如果你不想再次运行scraper,那么你可以在你的JSON文件(比如jq file.json > outfile.json)上使用一些工具(比如https://stedolan.github.io/jq/),这样outfile.json就会有正确的符号。

相关问题