天天看點

python讀取csv中文亂碼_Python讀取 csv檔案中文亂碼處理

需求:

按行解析讀取csv檔案存入關系型資料庫——主要是中文字型解析;

遇到的問題:

直接解析出來的資料為list形式,而且編碼格式為unicode;

解決問題:

前提了解:

中文編碼的規則 —— GB2312

字元串在Python内部的表示是unicode編碼,在做編碼轉換時,通常需要以unicode作為中間編碼,即先将其他編碼的字元串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。

decode的作用是将其他編碼的字元串轉換成unicode編碼,如str1.decode(‘gb2312’),表示将gb2312編碼的字元串轉換成unicode編碼。

encode的作用是将unicode編碼轉換成其他編碼的字元串,如str2.encode(‘gb2312’),表示将unicode編碼的字元串轉換成gb2312編碼。

示例如下:

filepath:檔案絕對路徑

with open(filepath, mode='rb') as f:

reader = csv.reader(f)

# i 設定按行擷取資料

for i, rows in enumerate(reader):

try:

# 解決讀取csv檔案中文格式亂碼——gb2312隻支援普通中文字元

row1 = [row1.decode('GB2312').encode('utf-8') for row1 in rows]

except:

#存在繁體時

#gbk支援繁體中文和日文假文

row1 = [row1.decode('GBK').encode('utf-8') for row1 in rows]

python 讀取CSV檔案 中文亂碼

今天讀取一個CSV檔案,列印出來,中文顯示亂碼,原因是編碼的緣故,CSV儲存是編碼格式ANSI,解決辦法是以記事本方式打開CSV檔案,然後另存為時編碼選擇UTF-8進行儲存即可.

c# winForm使用Aspose.Cells讀取CSV檔案中文亂碼問題

不廢話直接上代碼 主要注意是 紅色代碼部分 Aspose.Cells.TxtLoadOptions lo = new TxtLoadOptions();                      lo ...

解決BufferedReader讀取UTF-8檔案中文亂碼

解決BufferedReader讀取UTF-8檔案中文亂碼         File rst01 = new File(context.getRealPath("/")+&quot ...

golang 導出CSV檔案中文亂碼的問題

golang  導出CSV檔案中文亂碼的問題 解決辦法: 在csv檔案的開頭寫入 UTF-8 BOM // 建立檔案 dstf, err := os.Create("./data/&quot ...

python筆記5-python2寫csv檔案中文亂碼問題

前言 python2最大的坑在于中文編碼問題,遇到中文報錯首先加u,再各種encode.decode. 當list.tuple.dict裡面有中文時,列印出來的是Unicode編碼,這個是無解的. 對 ...

解決python中csv檔案中文寫入問題

一.前言 一般來說,為了友善,使用python的時候都會使用csv子產品去寫資料到csv檔案,但是寫入中文的時候,經常會報錯: UnicodeEncodeError: 'ascii' codec can ...

Python 讀取csv檔案到excel

朋友問我如何通過python把csv格式的檔案另存為xls檔案,自己想了想通過讀取csv檔案然後再儲存到xls檔案中即可,也許還有其他簡單的方法,但這裡也為了練習python文法及其他知識,是以采用了 ...

【 D3.js 進階系列 — 1.2 】 讀取 CSV 檔案時亂碼的解決方法

在 D3 中使用 d3.csv 讀取 CSV 檔案時,有時會出現亂碼問題. 怎麼解決呢? 1. 亂碼問題 使用 d3.csv 讀取 xxx.csv 檔案時.假設 xxx.csv 檔案使用的是 UTF- ...

随機推薦

C#開發微信門戶及應用(10)--在管理系統中同步微信使用者分組資訊

在前面幾篇文章中,逐漸從原有微信的API封裝的基礎上過渡到微信應用平台管理系統裡面,逐漸介紹管理系統中的微信資料的界面設計,以及相關的處理操作過程的邏輯和代碼,希望從更高一個層次,向大家介紹微信的應用 ...

gulp使用小結(二)

接上篇文章接Gulp使用小結(一) 内容如下: 首先,偶在gulp-demos上已經送出了個較通用的栗子...俺琢磨半天,原準備分階段搞些 Gulp 套路,但是寫完介個栗子之後,覺得已經能覆寫絕大多數 ...

Redis資料庫的安裝配置方

轉載于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/100.html?1455869650 redis 是一個高性能的key-v ...

如何掃描出Android系統媒體庫中視訊檔案

Android系統啟動時會去掃描系統檔案,并将系統支援的視訊檔案(mp4,3gp,wmv)掃描到媒體庫(MediaStore)中,下面代碼示範如何獲得這些檔案的資訊: publicstatic Lis ...

關于MSSQL導入導出時主鍵與限制丢失的問題解決

導入資料時,使用預設選項,會丢失主鍵.限制.預設值等屬性,按如下步驟操作: -->導出向導 -->選擇資料源 -->選擇目的 -->指定表複制或查詢:不要使用預設選項,選擇“在 ...

【HDOJ】1811 Rank of Tetris

并查集+拓撲排序.使用并查集解決a = b的情況. #include #include #include ...

SQL 2008 SP2 找不到SQL Server Engine

原文:SQL 2008 SP2 找不到SQL Server Engine 最近我有個客戶碰到一個很奇怪的問題.他安裝SQL server 2008 SP2的時候, SP2的安裝程式無法找到SQL se ...

toFixed()要注意的

toFixed()是Number類型的一種方法,該方法是保留四舍五入取指定位數的小數點,但最終傳回值類型是字元串.是以,剛開始用該方法的人要注意不要在計算時使用到該方法.

硬體和軟體相容i2c協定的24Cxx系列EEPROM存儲器(轉)

源:硬體和軟體相容i2c協定的24Cxx系列EEPROM存儲器 硬體上由于24c01的A0A1A2管腳不允許懸空,故暫時的想法是相容24c02 ---24c16 使用一個dip8封裝的晶片插座,A0 ...

安裝了C

2014-04-09 13:19:30 大學裡看的第一本程式設計書籍,就是C.但是一直沒有編譯. 今天首次安裝,我也佩服當初我是怎麼通過C二級的. 上午寫了sds手冊.其中的制圖用的visio制圖,非常好 ...