2012-12-10 57 views
0

我得到一個UnicodeDecodeError:'utf8'編解碼器無法解碼字節...無效的開始字節。如何將dict值轉換爲符合python的奇怪字符?

我懷疑它與我的字典中的某個值有關。要訪問的所有領域,並把它們放入一個字典,我用:

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

我能改變什麼讓這個我可以保證值可以被轉換成某種方式,是UTF8兼容或避免此錯誤?

列包含所有列標題...的值包含與對應於該列

即 柱=(「NAME」,業餘愛好「) 值=(」喬治「」籃球的所有值的元組「)

我遇到的問題是,在某個地方的價值觀,有什麼事情,多數民衆贊成這樣的: 值=(」 -insert奇怪UTF8不兼容字符 - 喬治」,‘籃球’)

+0

'column'和'values'包含什麼? –

+2

發佈實際導致錯誤的代碼。 – interjay

+0

或導致問題的實際字符串... –

回答

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)} 

或者,具有'replace'替換'ignore'將導致編解碼器替換爲Unicode的「替換字符」碼點(U + FFFD)任何變形字符。如果你只關心values中錯誤的字符串,你很明顯可以省略鍵上的解碼調用。

相關問題