Scrapy通过FEED_URI导出JSON遇Unknown feed storage scheme: c错误求助
问题原因
错误Unknown feed storage scheme: c是因为Scrapy 2.0+版本要求Feed导出路径必须指定存储协议。你之前的写法直接使用本地路径,Scrapy会误把路径开头的字符(比如Windows路径C:里的c)识别成未知的存储协议,导致导出失败。
解决方法
给FEED_URI加上file://协议前缀,以下两种方式任选其一:
方式一:直接修改路径字符串
修改custom_settings里的FEED_URI配置,在路径前添加file:///(Windows系统需要三个斜杠,Linux/macOS用两个也可,三个斜杠具备跨平台兼容性):
'FEED_URI': f'file:///{path}cars_id.json',
注意:如果你的path变量结尾已经带有斜杠,就不要重复添加,避免出现//的无效路径格式。
方式二:用pathlib生成跨平台合规URI(推荐)
借助Python的pathlib模块处理路径,自动适配不同系统的路径格式,同时生成标准的file协议URI:
- 先导入模块:
from pathlib import Path
- 修改
path变量的定义:
path = Path(expanduser("~")) / "dox" / "Getaround" / "" # 末尾加空字符串确保路径带斜杠
- 更新
FEED_URI配置:
'FEED_URI': f'file://{path.resolve()}/cars_id.json',
额外验证步骤
- 可以在代码里添加
print(path),确认生成的本地路径是否正确,有没有拼写错误。 - 确保
dox/Getaround文件夹已经存在,Scrapy不会自动创建不存在的目标目录。
内容的提问来源于stack exchange,提问作者M. Coppee
相关产品推荐
相关产品推荐

