python讀帶引號(hào)的csv--解決 'utf-8' codec can't decode

由于防止0開頭的字符串在excel里面顯示不了前面的0,所以一般會(huì)轉(zhuǎn)變格式,這個(gè)格式轉(zhuǎn)變包含很多,包括前面加“ ’? ”或者改為編碼格式等,這種格式在轉(zhuǎn)換為csv的時(shí)候就會(huì)是雙引號(hào)引起來每個(gè)字符串,這樣我們讀取就不能用utf-8讀取了

正常讀取方法:

import pandasas pd

import numpyas? np

import xlrd

trainFile ='E:/20170131.csv'

data = pd.read_csv(trainFile,encoding='utf-8')

在出現(xiàn)雙引號(hào)的時(shí)候如果我們依然用utf-8讀取會(huì)報(bào)一下錯(cuò)誤:

Python 'utf-8' codec can't decode byte 0xc4 in position 0: invalid continuat

解決方法如下:(更改解碼方法)

import pandasas pd

import numpyas? np

import xlrd

trainFile ='E:/20170131.csv'

data = pd.read_csv(trainFile,encoding='GBK')

幾種編碼的區(qū)別:

其實(shí)上面的還可以文件還可以 使用ISO-8859-1進(jìn)行解碼,但是解碼之后的不能顯示中文,因?yàn)閺谋举|(zhì)上說,ISO-8859-1是單字節(jié)編碼,自身不能顯示中文

GBK是國家標(biāo)準(zhǔn)GB2312基礎(chǔ)上擴(kuò)容后兼容GB2312的標(biāo)準(zhǔn)。GBK的文字編碼是用雙字節(jié)來表示的,即不論中、英文字符均使用雙字節(jié)來表示,為了區(qū)分中文,將其最高位都設(shè)定成1。GBK包含全部中文字符,是國家編碼,通用性比UTF8差,不過UTF8占用的數(shù)據(jù)庫比GBD大。

UTF-8:是用以解決國際上字符的一種多字節(jié)編碼,它對英文使用8位(即一個(gè)字節(jié)),中文使用24為(三個(gè)字節(jié))來編碼。UTF-8包含全世界所有國家需要用到的字符,是國際編碼,通用性強(qiáng)。UTF-8編碼的文字可以在各國支持UTF8字符集的瀏覽器上顯示。如,如果是UTF8編碼,則在外國人的英文IE上也能顯示中文,他們無需下載IE的中文語言支持包。

針對上面帶引號(hào)的情況,顯示中文需要使用“GBK”,其他的可以直接使用“UTF-8"。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容