如何在JSON文件中保存äåö字符?Scrapy导出转义为\u00f6怎么解决
Scrapy导出JSON特殊字符Unicode转义修复方案
Scrapy默认导出JSON时会开启ASCII强制转义,所有非ASCII字符(如ä、å、ö等)会被转换为\uXXXX格式的Unicode转义序列,按以下方案修改即可:
方法1:全局Feed导出配置(推荐)
如果使用Scrapy自带的Feed导出功能,直接在项目settings.py文件中添加如下配置即可:
FEED_EXPORT_ENCODING = "utf-8"
该配置会全局生效,所有通过Feed导出的JSON文件都会使用UTF-8编码,不会对非ASCII字符做转义处理。
方法2:自定义JsonItemExporter配置
如果是手动实例化JsonItemExporter做自定义导出,在初始化时添加ensure_ascii=False参数:
from scrapy.exporters import JsonItemExporter # 初始化导出器时指定参数 with open("output.json", "wb") as f: exporter = JsonItemExporter(f, encoding="utf-8", ensure_ascii=False) exporter.start_exporting() # 插入导出item的业务逻辑 exporter.export_item(your_item) exporter.finish_exporting()
方法3:使用标准库json模块导出
如果是自己调用Python原生json库写入数据,调用dump/dumps方法时传入ensure_ascii=False参数:
import json with open("output.json", "w", encoding="utf-8") as f: json.dump(your_data, f, ensure_ascii=False)
注意:修改配置后打开JSON文件时,请确保你的编辑器使用UTF-8编码读取,否则可能出现乱码。
内容的提问来源于stack exchange,提问作者Dastan Taibosunov
相关产品推荐
相关产品推荐

