大熊猫:尝试尝试除外的UnicodeDecodeError

时间:2020-08-11 21:26:14

标签: python pandas

我正在从s3中提取一个csv.gz文件,并将其加载到熊猫数据框中。

最近我的日常管道由于.nextInt()而开始失败。

要解决此问题,我想先尝试以UTF-8格式读取文件,然后如果失败,请尝试latin-1编码。

但是我的代码的行为不像我想的那样,我为此而感到困惑。 csv文件应具有1万行。当我仅使用UnicodeDecodeError运行第二个df调用时,我得到了正确的数据帧,但是添加try / except并不能为我提供正确的df。

encoding=latin1

输出

headers = ['A', 'B', 'C', 'D', 'E','F']
obj = s3.get_object(Bucket='srdata-lab', Key=xref_file_path)

try:
    df = pd.read_csv(io.BytesIO(obj["Body"].read()), compression="gzip", sep="|",
                     names=headers, header=None, parse_dates=['A'])
except UnicodeDecodeError:
    logger.info('Going the latin route')
    df = pd.read_csv(io.BytesIO(obj["Body"].read()), compression="gzip", sep="|",
                      names=headers, header=None, parse_dates=['A'], encoding = 'latin1')

logger.info(f"df shape: {df.shape}")

0 个答案:

没有答案