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

Python使用csv库读取CSV文件时XPath被篡改报无效谓词错误如何解决?

错误原因
  • 你观察到的Â字符是编码解码不匹配导致的典型问题:你的CSV文件是UTF-8编码,但调用open()读取文件时没有显式指定编码,Python会使用操作系统默认编码(Windows下通常为GBK/CP936,部分类Unix系统也可能不是UTF-8)对文件解码。
  • 你的XPath中包含了*非间断空格(NBSP,Unicode U+00A0)*而非普通ASCII空格,该字符的UTF-8编码为0xC2 0xA0,用非UTF-8编码解码时,0xC2会被映射为Â字符,导致XPath语法被破坏,最终抛出无效谓词的报错。
修复方案
  1. 首先修改文件读取逻辑,打开文件时显式指定encoding='utf-8',从根源解决解码错误问题。
  2. 可额外添加非间断空格替换逻辑,避免XPath中残留的特殊空格导致后续匹配异常,修改后的代码如下:
import csv
with open("input.csv", mode = 'r', encoding='utf-8') as file:
        reader = csv.reader(file,delimiter = ';')
        next(reader) #跳过表头读取
        InputData = [] #以嵌套列表形式存储数据行
        for row in reader:
            # 清理所有字段中的非间断空格,去除首尾空白
            cleaned_row = [col.replace('\u00A0', ' ').strip() for col in row]
            InputData.append(cleaned_row)
  1. 可选优化:如果是手动编辑的CSV文件,可直接把XPath中的所有特殊空格替换为普通ASCII空格,从数据源避免该问题。

修改完成后可打印读取到的XPath字段,确认无Â字符、和预期语法一致即可正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 21:15:03