Pandas 编码
Pandas Encoding
我正在使用 APache Nifi ExectureStreamCommand 执行 python 代码
我读了一个 csv,我知道编码是拉丁文。所以我正在用 :
读取我的文件(文件流对象)
pd.read_csv(sys.stdin, encoding='latin')
但是 pandas 一直向我抛出这个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 172: invalid continuation byte
因此似乎 pandas 完全不看给定的编码参数,不惜一切代价尝试 utf-8!
有什么想法吗?谢谢你的帮助
我终于找到了解决办法。
我想 pandas 尝试打开文件流,而不是将其视为 csv 并应用编码。默认情况下,它使用 utf-8 打开文件流 (sys.stdin)。
因此,我将 sys.stdin 转换为以下内容;它使用良好的编码对文件流进行编码:
sys.stdin= io.TextIOWrapper(sys.stdin.buffer, encoding='latin')
我正在使用 APache Nifi ExectureStreamCommand 执行 python 代码
我读了一个 csv,我知道编码是拉丁文。所以我正在用 :
读取我的文件(文件流对象)pd.read_csv(sys.stdin, encoding='latin')
但是 pandas 一直向我抛出这个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 172: invalid continuation byte
因此似乎 pandas 完全不看给定的编码参数,不惜一切代价尝试 utf-8!
有什么想法吗?谢谢你的帮助
我终于找到了解决办法。
我想 pandas 尝试打开文件流,而不是将其视为 csv 并应用编码。默认情况下,它使用 utf-8 打开文件流 (sys.stdin)。 因此,我将 sys.stdin 转换为以下内容;它使用良好的编码对文件流进行编码:
sys.stdin= io.TextIOWrapper(sys.stdin.buffer, encoding='latin')