一些基本概念:
編碼:將人類可識別的字元轉換為機器可識別的位元組碼、位元組序列。encode
解碼:編碼的反向過程。decode
unicode是人類可識別的字串格式。ascii、utf-8、gbk等都是機器可識別的位元組編碼。
python2的預設編碼是ascii碼,因此無法識別中文字元,需要顯式指定字元編碼。
機器記憶體中的資料,統一使用unicode編碼
資料傳輸或者儲存到硬碟上,使用utf-8編碼
in [43]
:'美麗人生'
.encode(
'gbk'
)out[43]
: b'\xc3\xc0\xc0\xf6\xc8\xcb\xc9\xfa'
in [44]
: b'\xc3\xc0\xc0\xf6\xc8\xcb\xc9\xfa'
.decode(
'gbk'
)out[44]
:'美麗人生'
資料庫:oracle
使用cur.execute(sql, param)執行後,獲取對應資料時要注意編碼格式
定義了fetchall函式,獲得的每行資料裡的每個資料解碼為unicode,然後再提供dict生成dict資料。
def
fetchall
(cur, encoding=
'gbk'):
title =
map(
lambda x: x[0]
.lower(
), cur.description)
rows = cur.fetchall(
) rows =
map(
lambda row:
dict
(zip
(title, gbk_to_utf8_row(row, encoding=encoding)))
, rows)
return rows
def
gbk_to_utf8_row
(rows, encoding=
'gbk'):
return
[gbk_to_utf8(x, encoding=encoding)
for x in rows]
def
gbk_to_utf8
(item, encoding=
'gbk'):
ifisinstance
(item,
str)
:return item.decode(
'utf-8'
)return item
Python讀取大檔案並插入資料庫
把幾個大的檔案的內容讀到資料庫中。檢視了手冊open方法,首先想到了seek 方法,和fread 方法讀到一段內容來執行插入。大概說一下方法吧。一 取資料 取一段內容,以回車 n 分隔內容為資料,批量插入資料庫 如要讀取檔案內容如下 abcd efgh ijkl mnop 按13個字元取內容 roo...
Python 讀取Sql Server資料庫
created on sep 11,2014 author liu.chunming import pyodbc def get sms operator sectornumber 0 cnxn pyodbc.connect driver server 10.86.9.171 database mc...
Clementine讀取資料庫檔案
看了一些網上寫的資料,不太熟悉資料庫和odbc,只是總結下如何讀取。clementine讀取資料庫檔案,該資料庫檔案時access資料庫檔案。第一步,建立資料來源 win7系統下,win r後輸入odbcad32,出現odbc資料管理器,在系統dsn中選擇新增 開啟資料來源配置,發現只有sqlser...