【发布时间】:2018-07-26 12:36:06
【问题描述】:
我正在尝试构建一种方法来导入多种类型的 csv 或 Excel 并将其标准化。一切都运行顺利,直到某个 csv 出现,这给我带来了这个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcd in position 133: invalid continuation byte
我正在构建一组 try/excepts 以包含数据类型的变体,但对于这个我不知道如何防止。
if csv_or_excel_path[-3:]=='csv':
try: table=pd.read_csv(csv_or_excel_path)
except:
try: table=pd.read_csv(csv_or_excel_path,sep=';')
except:
try:table=pd.read_csv(csv_or_excel_path,sep='\t')
except:
try: table=pd.read_csv(csv_or_excel_path,encoding='utf-8')
except:
try: table=pd.read_csv(csv_or_excel_path,encoding='utf-8',sep=';')
except: table=pd.read_csv(csv_or_excel_path,encoding='utf-8',sep='\t')
顺便说一下,文件的分隔符是“;”。
所以:
a) 我知道如果我能确定“位置 133”中的字符是什么,那么追查问题会更容易,但我不知道如何找出来。有什么建议吗?
b) 有没有人建议在 try/except 序列中包含什么来跳过这个问题?
【问题讨论】:
-
您能给我们看一个 CSV 样本吗?
-
@FHTMitchell 实际上我正在尝试复制/粘贴它,但是当我尝试这样做时,文本框会空白
-
标题将是相关的,因为我认为它意味着文件中的第 133 个字符。它可能是“informação”中的角色之一。在加载之前,您需要先将文件转换为 UTF 格式。
标签: python pandas unidecoder