首页 > 解决方案 > 尝试读取使用 python 2.7 制作的 hdf 文件时出现 UnicodeDecodeError

问题描述

我有一堆需要用 pandas 读取的 hdf 文件,pd.read_hdf()但它们已保存在 python 2.7 环境中。现在,我在 python 3.7 上,当试图用 阅读它们时data = pd.read_hdf('data.h5', 'data'),我得到了

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 6: invalid start byte

现在我知道,这些文件可以包含各种奇怪的东西,比如Äö,而且0xf6可能是ö

那么我该如何阅读这个hdf文件呢?

文档read_hdf仅指定mode为参数,但这并没有做任何事情。显然,这是 pandas 中的一个旧错误,或者更确切地说是无法修复的底层 pytables。但是,那是从 2017 年开始的,所以我想知道这是否已修复,或者是否有我无法找到的解决方法。根据错误报告,您也可以传递给读者,但是当我按照错误中的建议指定时,或者我认为可能是罪魁祸首enconding='',这并没有做任何事情。encoding='UTF8'encoding='cp1250'

拥有一种用于归档数据的文件格式是非常烦人的,显然在一个版本步骤之后生成它的程序就无法再读取这些数据了。我会很好地让ö s 乱码␣ý⌧或像往常一样有编码错误的类似有趣的东西,但根本无法阅读它是一个问题。

标签: pythonpandasunicodehdf

解决方案


推荐阅读