0

我收到 UnicodeDecodeError: 'utf8' codec can't decode bytes... invalid start byte。

我怀疑它与我字典中的一个值有关。要访问所有字段并将它们放入字典中,我使用:

        mydictionary = {x:y for x,y in zip(column, values)}

我可以进行哪些更改以确保可以将值转换为符合 utf8 的某种方式或避免此错误?

column 包含所有列标题... values 包含一个元组,其中包含与该列对应的所有值

即列 = ('NAME', HOBBY') 值 = ('George', 'Basketball')

我遇到的问题是值的某个地方发生了一些事情,例如: values = ('-insert known utf8 noncompliant character-George', 'Basketball')

4

1 回答 1

0

如果您不关心错误值的确切内容,您可以简单地告诉 UTF-8 编解码器忽略错误,

import codecs
codec = codecs.lookup('utf-8')
mydictionary = {codec.decode(x, 'ignore'): codec.decode(y, 'ignore') for x,y in zip(column, values)}

或者,替换'ignore''replace'将导致编解码器用 Unicode“替换字符”代码点 (U+FFFD) 替换任何格式错误的字符。如果您只关心 中的错误字符串values,您可以明显忽略键上的解码调用。

于 2012-12-10T15:51:36.873 回答