You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask读取CSV文件触发charmap codec解码错误如何解决

错误产生原因
  • Windows环境下Python的open()函数未手动指定编码参数时,会默认使用系统自带的区域编码(即报错里提到的charmap编码,常见为cp1252、GBK等),而你的cafe-data.csv文件实际以UTF-8编码保存,文件中存在默认编码无法映射的特殊字符(如非英文文本、特殊符号、emoji等),解码过程字节匹配失败就会抛出该Unicode解码错误。
  • 额外注意:你贴出的代码中with open(...)行末尾缺失了必填的冒号,即使解决编码问题运行时也会触发语法错误。
修复方案

打开文件时显式指定和文件实际存储匹配的UTF-8编码,同时补全语法缺失的冒号即可,修改后的完整代码如下:

@app.route('/cafes')
def cafes():
    with open('cafe-data.csv', newline='', encoding='utf-8') as csv_file:
        csv_data = csv.reader(csv_file, delimiter=',')
        list_of_rows = []
        for row in csv_data:
            list_of_rows.append(row)
    return render_template('cafes.html', cafes=list_of_rows)

如果修改后仍提示编码相关错误,可将编码参数替换为utf-8-sig,适配带BOM头的UTF-8格式CSV文件,这类文件通常由Windows版Excel直接导出生成。

内容的提问来源于stack exchange,提问作者Yilin Zuo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 08:39:20