需求:按行解析讀取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的物件,我們可以對這個物件進行遍歷,輸出每一行,某一行,或某一列。如...