Python編碼格式錯誤解決方案及案例

Python格式錯誤解決方案及案例

  這幾天在玩爬蟲,在解析和提取内容時經常出現由於内容格式問題導致出錯,為防止以後出錯,整下一下,以下是這幾天的總結:

  1. 特殊符號或表情符號等

    背景:爬取一個烹飪教學網站,在用BeautifulSoup解析網頁時報錯:

    UnicodeEncodeError: ‘UCS-2‘ codec can‘t encode character ‘\U0001f44d‘ in position 0: Non-BMP character not supported in Tk

    解決方法

    import sys

    non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)

    targetText=targetText.translate(non_bmp_map)

    其中targetText即你需要轉化的文本。

  2. csv中寫入中文出現亂碼

    背景:csv module是經典的操作csv控件的方法,一般來説操作csv文件都會用‘utf-8‘格式編碼,如下:

    

import csv 

targetText=[‘abc‘,‘efg‘]

csv_target=open(‘mycsv.csv‘,‘a+‘,newlien=‘‘,encoding=‘utf-8‘)

writer=csv.writer(csv_target)

writer.writerow(targetText)

csv_target.close()

往其中寫入中文時(即targetText包含中文時,如targetText=[‘張三‘,‘李四‘])會出現亂碼。

    解決方法:修改編碼方式為‘utf-8-sig‘

import csv 

targetText=[‘張三‘,‘李四‘]

csv_target=open(‘mycsv.csv‘,‘a+‘,newlien=‘‘,encoding=‘utf-8‘)

writer=csv.writer(csv_target)

writer.writerow(targetText)

csv_target.close()

  

  python的編碼格式是個大坑.

  暫時先更新到這,後面遇到再繼續更新。

  

    

  

原文地址:https://www.cnblogs.com/riocasture/p/11237197.html

时间: 2024-10-26 15:43:20

Python編碼格式錯誤解決方案及案例的相关文章

vs2010 devenv.exe-Assert Failure錯誤解決

原來用的是Windows Server 2003,後來公司升級成了Windows 7 專業版. 所以重新安裝了Microsoft Visual Studio 2010,然後經常打開VS2010會報devenv.exe-Assert Failure錯誤. 網上搜索說明與Microsoft .NET Framework 4.5和中文包有關,查找發現電腦裏安裝了Microsoft .NET Framework 4.5繁體中文語言包. 卸載之,再開啟VS2010就不再報錯了.

關於php接ICBC的支付接口的解決方案

一:背景: 目前項目使用的是php語言開發,需要接入中國工商銀行的ICBC的線上支付接口. 二:遇到的問題:支付時需要對數據簽名,但是銀行那邊不提供php版本的程序,只有java版本的,以下是對接人回復的郵件: 三:思路: 目前大概有3種解決方案: 1.  通過使用一個叫 php-java-bridge 的插件,在php中調用java的函數 2. 把java的函數改寫成php版本 3. 在服務器配置javaWeb環境,通過http請求把簽名的參數傳入,從而獲取簽名 四: 具體做法: 我採取的是第

开启Visual Studio 2013时,出现Microsoft.VisualStudio.Web.PasteJson.JsonPackage无法载入的可能解決方案

1.先下载:http://www.jb51.net/dll/Microsoft.VisualStudio.Web.PasteJson.dll.html Microsoft.VisualStudio.Web.PasteJson.dll 下载 2.https://dotblogs.com.tw/terrychuang/archive/2014/11/18/147350.aspx 開啟Visual Studio 2013時,出現Microsoft.VisualStudio.Web.PasteJson.

[SharePoint 2010]Sandboxed Solution (沙箱解決方案)

現有的SharePoint 2007系統中,我們如果要安裝客製化的程式碼到系統中,我們必須製作一個解決方案包裝檔(Solution Package),然後在系統的中央管理後台中,真對整個伺服器農場Farm發佈出去. 使用解決方案包裝檔(Solution Package)的好處是在一個多台伺服器的環境中可以一次性將客製化程式碼發佈出去. 然而, 現有的解決方案包裝檔可以存取每一台伺服器上的資源,而且我們為了方便通常會給予很高的執行權限或者是將它部屬到Global Assembly Cache中.

[個人紀錄] WindowsLiveWriter 插入代碼跳出錯誤

跳出找不到設定檔Can't load configruaration fromC:\Users\-\AppData\Roaming\Windows Live Writer\WindowsLiveWriter.SourceCode.config 只要繼續點確定,一樣可以進入插入代碼的視窗中 再點選Option選擇你的設定,再點OK(直接點也可以), 下次再打開plugin就不會再跳錯誤了

python tar.gz格式压缩、解压

压缩 代码 import tarfile import os def tar(fname): t = tarfile.open(fname + ".tar.gz", "w:gz") for root, dir, files in os.walk(fname): print root, dir, files for file in files: fullpath = os.path.join(root, file) t.add(fullpath) t.close()

PHP header() 下載服務器文件亂碼,損壞解決辦法

header("Content-Type: application/octet-stream"); header('Content-Transfer-Encoding: binary'); header("Content-Disposition: attachment; filename=\"".$file_name."\""); readfile("lib/uploads/doc/".$file_name

NB實體連線到公司的網路,無法上網解決方案,需設 proxy。

未使用 VPN Cisco Anyconnect 已連線到公司的網路: google-chrome-stable --proxy-server="proxy.XXXcomm.com:3128" 未連線到公司的網路: google-chrome-stable 使用 VPN Cisco Anyconnect google-chrome-stable 為什麼實體連線要設 proxy 呢? 因為實體連線後,NB是屬於公司內部電腦的一份子,全部設定要依公司 為什麼 VPN 連線不需要設 prox

記錄一次CRS-0184: Cannot communicate with the CRS daemon的解決

1. 描述: 使用crs_stat –t 命令查看rac服務,直接報CRS-0184: Cannot communicate with the CRS daemon.錯誤 但是奇怪的是我們的DB是沒有問題的.sqlplus  / as sysdba可以繼續登陸,并使用. 2. 錯誤分析: 首先查看警告日誌:錯誤從2016/07/13號開始 /grid/11.2.0/log/phars1/alertphars1.log 2016-07-13 16:04:49.616: [crsd(21419)]C