微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UnicodeDecodeError:'utf-8'编解码器无法解码位置2的字节0xa0:无效的起始字节,尝试了所有编码样式

如何解决UnicodeDecodeError:'utf-8'编解码器无法解码位置2的字节0xa0:无效的起始字节,尝试了所有编码样式

ad
    data = self._reader.read(nrows)
  File "pandas\_libs\parsers.pyx",line 826,in pandas._libs.parsers.TextReader.read
  File "pandas\_libs\parsers.pyx",line 841,in pandas._libs.parsers.TextReader._read_low_memory
  File "pandas\_libs\parsers.pyx",line 920,in pandas._libs.parsers.TextReader._read_rows
  File "pandas\_libs\parsers.pyx",line 1052,in pandas._libs.parsers.TextReader._convert_column_data
  File "pandas\_libs\parsers.pyx",line 1083,in pandas._libs.parsers.TextReader._convert_tokens
  File "pandas\_libs\parsers.pyx",line 1220,in pandas._libs.parsers.TextReader._convert_with_dtype
  File "pandas\_libs\parsers.pyx",line 1238,in pandas._libs.parsers.TextReader._string_convert
  File "pandas\_libs\parsers.pyx",line 1429,in pandas._libs.parsers._string_Box_utf8
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa0 in position 2: invalid start byte

阅读CSV时出现错误

要纠正这一点,我使用了unicode转义:

csv_df=pd.read_csv(file_path,header=0,squeeze=True,dtype=str,keep_default_na=False,encoding='unicode_escape')   

但是, 现在我得到\ xa0两个单词之间的空格:

'ObjectStatus': 'IN\xa0SERVICE'

我的CSV具有:

Key          Values
RequestID   
ObjectType   CONTAINER
ObjectName   INMUNVMBMHPBNB6001ENBCMW005
ObjectStatus IN SERVICE
ObjectType   CONTAINER

解决方法

unicode_escape编解码器用于文字转义码(长度4 \\xa0与长度1 \xa0)。如图所示,这只是Python对该字符串的调试表示,它会打印\xa0以表明它不是常规空间。您的文件可能是用cp1252latin1编码的,因为\xa0是这些编码中的NO-BREAK SPACE

示例:

>>> d = {'ObjectStatus': 'IN\xa0SERVICE'}
>>> d
{'ObjectStatus': 'IN\xa0SERVICE'}
>>> print(d['ObjectStatus'])
IN SERVICE
,

对我来说,下面已经奏效了。 使用 str.replace() 我已经用 ' '

替换了具有 '\xa0' 的列中的所有值
csv_df = pd.read_csv(file_path,header=0,squeeze=True,dtype=str,keep_default_na=False)

csv_df['Values'] = csv_df['Values'].astype(str).str.replace(u'\xa0',' ')

我不得不将这些值传递给另一个创建 XML 的函数,尝试了所有编码,但都没有奏效。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。