需求:
按行解析讀取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("/")+" ...
golang 導出CSV檔案中文亂碼的問題
golang 導出CSV檔案中文亂碼的問題 解決辦法: 在csv檔案的開頭寫入 UTF-8 BOM // 建立檔案 dstf, err := os.Create("./data/" ...
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制圖,非常好 ...