Python讀取 csv檔案中文亂碼處理

2022-09-03 20:06:11 字數 908 閱讀 3068

需求:

按行解析讀取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格式資料 import csvcsv資料儲存,包括三種方式 直接寫入csv檔案 寫入 一條或者多條資料 import csv header line1 line2 line3 rows 1,2,3 4,5,6 7,8,9 with open test.csv w as f file csv.w...

python讀取CSV檔案

reader讀取csv檔案,再用for迴圈遍歷 import csv with open customer.csv as f f csv csv.reader f for row in f csv print row 0 執行結果 id test 932467 1111 932468 2 93246...

python讀取csv檔案

在python裡面,讀取或寫入csv檔案時,首先要import csv這個庫,然後利用這個庫提供的方法進行對檔案的讀寫。0x01 獲取每一行 讀取csv檔案,用的是csv.reader 這個方法。返回結果是乙個 csv.reader的物件,我們可以對這個物件進行遍歷,輸出每一行,某一行,或某一列。如...