json.dumps錯誤:'utf8' codec can't decode byte解決方案

pythontab發表於2013-01-05


一次在使用json.dumps()過程中,出現錯誤提示:

ERROR:"UnicodeDecodeError: 'utf8' codec can't decode byte 0xe1 in position 5: unexpected end of data"

透過錯誤提示我們知道,肯定是編碼問題,找到問題所在,就不難解決了。。。

正常情況:

#引入json模組
import json
#定義一個字典
dit = {'a':111,'b':222,'c':333}
#把字典轉換成json字串
#執行結果為'{"a":111,"b":222,"c":333}'
json.dumps(dit)


上面是正常情況,但是如果在字典中出現特殊字元,就會報上面的錯

如何解決?

解決方案:

我們只需要對字串進行unicode化,忽略錯誤就行啦,程式碼如下:

unicode( value, errors='ignore')


但是要注意,這裡的value必須為字串,這裡的value就是上面的111、222、333

然後先進行字串unicode化,然後再使用最上面的程式碼進行json encode就ok了,問題就這麼解決了。。。

如果還有不明白的歡迎留言提問哦~~

相關文章