解決python中因為字串編碼導致的錯誤
python程式設計例項:
1. 將抓取的網站資料,儲存到excel表格中,在sheet.write()函式時,報錯如下:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)
百度上一般的解決方法如下: import sysreload(sys)
sys.setdefaultencoding('utf-8')
---上述方法只適用於儲存的編碼格式為utf-8的方式,如果需求其他的編碼方式,一般上述方法都不能解決
2. 小編經過長時間的掉入坑中,總結一套方法:
1. 出現上述錯誤時,首先使用chardet庫中的detect方法,獲取當前字串的編碼格式'format'
2. 針對獲取到的編碼格式進行解碼,即str.decode('format')
3. 如果第二種方法仍然不能解決,嘗試著將其進行編碼,即str.decode('format').encode('format1'),其中format1的種類不多,比如utf-8, ascii,還有gbk,gb2312等不多的幾種,一般都可以搞定
相關推薦
解決python中因為字串編碼導致的錯誤
python程式設計例項: 1. 將抓取的網站資料,儲存到excel表格中,在sheet.write()函式時,報錯如下: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not
如何解決Python中的UnicodeEncodeError編碼錯誤問題
前言:我們在初步寫python程式時,常常出現編碼格式錯誤的問題,這是由於不同格式的編碼方式對相同資訊的轉化結果不同,當我們使用了不合適的編碼方式後,便無法返回正確的結果。博主在使用Pycharm時也遇到了類似的問題,安裝好軟體開啟寫好的python程式,提示如
解決Python中sum函數出現的TypeError: unsupported operand type(s) for +: 'int' and 'list'錯誤問題
當在Python中執行sum函式時,會出現“TypeError: unsupported operand type(s) for +: 'int' and 'list'”這樣的問題 程式碼如: print(sum([[1, 2, 3], [4, 5, 5]])) 會出現如下的錯誤:
解決Python中字典出現“TypeError: 'dict_keys' object does not support indexing”錯誤
“TypeError: 'dict_keys' object does not support indexing”錯誤,是因為python3以後的版本改變了dict.keys的返回值,返回的是dict_keys物件,不支援索引值。 #!/usr/bin/env python # -*- codi
Python中的字串與字元編碼
本節內容: 前言 相關概念 Python中的預設編碼 Python2與Python3中對字串的支援 字元編碼轉換 一、前言 Python中的字元編碼是個老生常談的話題,同行們都寫過很多這方面的文章。有的人云亦云,也有的寫得很深入。近日看到某知名培訓機構的教學視訊中再次談及此問題,講解的還是不盡人意,所
成功解決python中出現的IndentationError: expected an indented block的錯誤
當在python中出現這個錯誤時,IndentationError: expected an indented block我們先分析一下這句話的意思:預期的一個縮排排印的空格,然後你會發現,這是一個so easy的問題,是因為你沒有對print(x,y)的前邊進行Tab鍵縮排
成功解決Python中匯出圖片出現錯誤SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position
今天對Python程式設計寫個Hierarchical clustering層次聚類演算法,想把多張圖片層次聚類,輸出一張圖片時,發現了一個討厭的bugdrawdendrogram(tree, imlist, jpeg='C:\Users\99386\Desktop\resu
Python中的字串與字元編碼:編碼和轉換問題
本節內容: 前言相關概念Python中的預設編碼Python2與Python3中對字串的支援字元編碼轉換 一、前言 Python中的字元編碼是個老生常談的話題,同行們都寫過很多這方面的文章。有的人云亦云,也有的寫得很深入。近日看到某知名培訓機構的教學視訊中再次談及此問題,講解的還是不盡人意,所以才想寫這篇
Python中的Unicode編碼和UTF-8編碼
2個 傳輸 硬盤 中文字符 結合 2.7 客戶端 有一點 來看 下午看廖雪峰的Python2.7教程,看到 字符串和編碼 一節,有一點感受,結合 崔慶才的Python博客 ,把這種感受記錄下來: ASCII碼:是用一個字節(8bit, 0-255)中的127個字母表示大
python中的內容編碼
left margin and 數據類型 中文 網絡 chan 解碼 如果 一、python編碼簡介 1)編碼格式簡介 python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ASCII),ASCII(American Standard Code for
python中的字串(str)操作
字串是python中資料型別。一般就單引號(‘’)或雙引號(“”)引起來的內容就是字串。 例如:下面兩個都是定義字串 str1 = "hello world" str2 = 'Hello World' 1、索引:就是下標,從0開始。預設是從左往右數;當索引為負數時,表示從右往左數。通過索引得
解決python中解決No module named XXXX 問題
百度的時候大部分時間是推薦安裝Anaconda3 。Anaconda3 強大歸強大,但是需要下載並且需要進行配置環境才可以用,如果覺得麻煩,不妨用下面的方式解決: 1.python怎麼裝matplotlib python安裝"matplotlib"的步驟如下: (1)首先確保已經安裝
Python中去除字串中空格的方法
Python中去除字串中指定字元或者空格的方法有幾種: str.strip() //該方法用於去除字串開頭和結尾的指定字元或字串(預設為空格或換行符) str.lstrip() //該方法用於截掉字串左邊的空格或指定字元 str.rstrip() //該方法用於截掉字串右邊的空格或指定字元
[詳解]Python中的字串的strip(),lstrip(),rstrip()的含義
轉自:【詳解】python中字串的strip(),lstrip(),rstrip()的含義 【問】 Hi Crifan, 我在http://bbs.csdn.net/topics/390361293 裡看到抓取網易公開課的指令碼,我看了下,感覺還比較簡單,但是有一處不是很理
python中的字串切片操作
Sequence[left:right:step]: 1,若step為正,則表示從索引left開始取,直到索引right為止,但不包括索引right. 如果left >= right,結果為空; 如果left預設,預設為0; 如果right預設,預設為len(Sequence)
python中的字串以及內建方法
字串的操作方法 + 字串連線操作 str1 = "大金鍊子" str2 = "小手錶" str3 = str1 + str2 print(str3) * 字串複製操作 str1 = "大金鍊子" str2 = "小手錶" str3 = str1*3
python中的字串常量,是否支援通過下標的方式賦值
說明: 今天在看python,通過下標獲取字串常量的字元,在想是否可以通過下標的方式賦值。 操作: 1.對字串下標賦值 >>> text='python' >>> text[2] = 'j' Traceback (most recent call la
解決Python中TypeError: unbound method 問題
今天執行了下之前寫的Python介面檔案,原始碼如下, __author__ = 'Administrator' #coding:utf-8 from readData import dictionary readIt = {} readIt = dictionary.onlyCellValue
Python中String字串操作
關於字串的一些操作方法: ascii:字母,數字,特殊字元:1個位元組,8位 Unicode:16位 兩個位元組 升級 32 位 四個位元組 utf-8:最少一個位元組 8位表示。 英文字母 8位 1個位
Python中的字串string型別基礎
字串基礎 定義 字串屬於python中的一個序列物件(sequence object),一串字元為元素的序列物件。 S = 'hello world!' S = "hello world!" S = '''hello world!''' 訪問