1. 程式人生 > >Python學習筆記(一)轉碼問題的解決的解決方法:“ignore”

Python學習筆記(一)轉碼問題的解決的解決方法:“ignore”

Python轉碼問題的解決方法:“ignore”

若希望將Json檔案轉化為python形式的Unicode字串,可以如下操作
unicodestr = json.loads(html.decode("gbk"))
但在實際開發中,這種辦法時常會出現異常:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 205: illegal multibyte sequence
經網上查詢瞭解到這是因為遇到了非法字元——尤其是在某些用C/C++編寫的程式中,全形空格往往有多種不同的實現方式,比如\xa3\xa0,或者\xa4\x57,這些字元,看起來都是全形空格,但它們並不是“合法”的全形空格(真正的全形空格是\xa1\xa1),因此在轉碼的過程中出現了異常。

這樣的問題很讓人頭疼,因為只要字串中出現了一個非法字元,整篇文章就都無法轉碼。

解決辦法:
unicodestr = json.loads(html.decode("gbk",“ignore”))
因為decode的函式原型是decode([encoding], [errors='strict']),可以用第二個引數控制錯誤處理的策略,預設的引數就是strict,代表遇到非法字元時丟擲異常;
如果設定為ignore,則會忽略非法字元;
如果設定為replace,則會用?取代非法字元;
如果設定為xmlcharrefreplace,則使用XML的字元引用。

此解決方法實測有效,資料來源:http://www.jb51.net/article/16104.htm,特此感謝。

相關推薦

Python學習筆記問題的解決解決方法ignore

Python轉碼問題的解決方法:“ignore”若希望將Json檔案轉化為python形式的Unicode字串,可以如下操作unicodestr = json.loads(html.decode("gbk"))但在實際開發中,這種辦法時常會出現異常:UnicodeDecode

Python學習筆記Python的打包與發布

新建 raw 就是 程序 文件 distrib pac lib site 在python程序中,一個.py文件被當作一個模塊,在各個模塊中定義了不同的函數。當我們要使用某一個模塊中的某一個函數時,首先須將這個模塊導入,否則就會出現函數未定義的情況. 下面記錄的是打包及安裝包

Python 學習筆記

pytho oat 變量 情況 class 弱類型 定義 寫代碼 基本上 為什麽學習Python?因為Python 的用處太多了。 本想學會一們語言就好好的維持下去,但是最近Python太火啦,什麽人工智能、網絡爬蟲的,耳濡目染的,心想多學習一些東西總是好的,於是就抽空學習

python學習筆記

學習筆記 關鍵參數 引號 出現 大寫字母 整除 mil 不能 函數名 以前學習過c/c++,在初次接觸python後有恨多類似的概念,最近開始接觸python,正在閱讀python簡明教程,遇到的python自己的語法特性。 python中的縮進代表python中的一個塊,

python學習筆記

余數 必須 return 行緩沖 pyc 構造 逆序 返回 reverse 1、在交互式解釋器中,給變量賦值(字符串,數值等等)並通過輸入變量名顯示它們的值。再用 print 語句做同樣的事。區別在於:變量賦值是數值時沒有區別;當變量賦值是字符串時,通過變量名顯示它們的值的

python學習筆記簡介

程序 應用 shift 聖誕節 其他 .exe 一點 交互 例如   Python是著名的“龜叔”Guido van Rossum在1989年聖誕節期間,為了打發無聊的聖誕節而編寫的一個編程語言。   優點: Python為我們提供了非常完善的基礎代碼庫 Python的代碼

Boost Python學習筆記

enc dpkg 編譯工具 module 項目 href cloud etc DC 開發環境搭建 下載源碼 boost_1_66_0.tar.gz 生成編譯工具 # tar axf boost_1_66_0.tar.gz # cd boost_1_66_0 # yum in

Python學習筆記認識Python

一、Python的設計哲學 優雅 明確 簡單   二、Python的特點 Python是完全面向物件的語言 函式、模組、數字、字串都是物件,在Python中一切皆物件 完全hick繼承、過載、多重繼承 支援過載運算子,也支援泛型設計

Python 學習筆記[語法基礎]

資料型別 數字 整數(int,long):記憶體決定長度,不支援自增(++)和自減(–) 浮點數(float):帶小數點的數,無窮小數會做精度處理 布林(bool):非空(None)非 0 → true,0 或空(None) → false 複數(com

Python學習筆記——瀏覽器自動化測試工具Selenium

看了網友用Python通過影評來分析電影是好片還是爛片,自己也有了個想法想去分析下百度貼吧的帖子是精品帖子還是水帖子。目前正在熟悉工具的使用。 會用到的庫:Selenium, pandas(資料模型),jieba(分詞器),snownlp(情感分析),worldcloud(

Python學習筆記Python基礎

1.1  Python 簡介 Python是一門跨平臺、開源、免費的解釋型高階動態程式設計語音 Python支援偽編譯將原始碼轉換為位元組碼來優化程式提高執行速度和對原始碼進行編譯 Python支援使用py2exe、pyinstaller、cx_Freeze或其他類似工

python 學習筆記—目錄檔案的操作

    python對目錄檔案的操作是依靠os模組的。使用該模組需要匯入: import os   1. 得到當前的工作目錄: os.getcwd() 'e:\\python programs'   2. 改變當前的工作目錄 os.chdir(path) #示例:

openCV Python 學習筆記影象的基本操作

Python的版本是Python3.6,openCV使用的是cv2 例圖 一、影象的讀取、顯示和儲存 讀取影象:cv2.imread(filename,flags) 該函式有兩個引數,第一個引數是圖

多層感知機-印第安人糖尿病診斷-基於keras的python學習筆記

版權宣告:本文為博主原創文章,未經博主允許不得轉載。https://blog.csdn.net/weixin_44474718/article/details/86219792 函式解釋 np.random.seed()函式,每次執行程式碼時設定相同的seed,則每次生成的隨機數也相

python學習筆記jieba模組初探

環境說明:windows 7,python27,jieba VERSION 0.38,pycharm2016.1 1.簡介:  支援中文分詞,關鍵字提取,詞性標註,自己管理詞庫等 2.安裝: 方法一:開始->搜尋cmd->cd到pip.exe目錄->輸入命

Python學習筆記基本資料型別

一、數字型別整數:int浮點數:float注:python不同於其它語言,int不區分short、int、long型別,只有一種型別int;浮點數不區分float與double型別,只有一種型別float,在python中float就表示double注:1/2得到的結果是0.

Python 學習筆記基礎與入門

注:因為先前學習過C/C#,Java。故學習Python時只會記錄與此前幾種語言不同之處 Python是一種解釋型、面向物件、動態資料型別的高階程式設計語言。 Python簡介 Python 是一個高層次的結合瞭解釋性、編譯性、互動性和麵向物件

Python學習筆記程式基本結構

程式基本結構 程式流程圖:圖形,流程線,文字說明 流程圖的基本元素:表示相應操作的框,帶箭頭的線,框內外必要的文字說明 三種程式設計的基本結構:順序結構,選擇結構(單選擇

python學習筆記執行,輸入輸出,資料型別

開學到現在6個星期過去了,前段時間真的是太忙了一直沒有時間更新自己的部落格。最近比較空,計劃把學的python跟opengl好好總結一下。 python執行方式   互動模式 命令列下直

Python學習筆記基礎語法、變數型別、運算子快速入門篇

Head First Python、Python基礎教程 下劃線的特殊意義 以下劃線開頭的識別符號是有特殊意義的。 以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用”from xxx import *”而匯入