MySQLdb是在Python中使用MySQL數(shù)據(jù)庫的橋梁限府,有了這個橋梁痢缎,得以實現(xiàn)Python與MySQL的數(shù)據(jù)交換。由于Python與MySQL使用的編碼可能不同姻几,以及不同操作系統(tǒng)文字編碼的區(qū)別势告,所以對于中文的處理需要特別注意蛇捌。
- 讀取中文數(shù)據(jù)庫
# coding=utf-8
import MySQLdb
try:
conn=MySQLdb.connect(host='localhost',user='root',passwd='password',db='ZhilianJob', charset='utf8')
cur=conn.cursor()
cur.execute(r'select * from table1')
resultlist= cur.fetchall()
for result in resultlist:
print result[0].encode('utf-8')
cur.close()
conn.close()
except MySQLdb.Error,e:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
- 向數(shù)據(jù)庫中寫入中文
# coding=utf-8
import MySQLdb
try:
conn=MySQLdb.connect(host='localhost',user='root',passwd='password',charset='utf8')
cur=conn.cursor()
cur.execute('CREATE database test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci')
cur.execute('USE test')
cur.execute('CREATE TABLE tb1(ID INT(10) ,Name VARCHAR(20))ENGINE=InnoDB DEFAULT CHARSET=utf8')
sql='INSERT INTO tb1 VALUES (%d,"%s")'%(1,'cjw')
cur.execute(sql)
s='陳經(jīng)緯'
s=s.decode('utf-8').encode('utf-8')
# 如果是從網(wǎng)上抓取的編碼為utf-8的中文络拌,則無需再次編碼
cur.execute('INSERT INTO tb1 VALUES (%d,"%s")'%(2,s))
sql='SELECT * FROM tb1'
cur.execute(sql)
resultlist= cur.fetchall()
for result in resultlist:
print result[1]
# Mac中應(yīng)使用result[1].encode('utf-8')
conn.commit()
cur.close()
conn.close()
except Exception as e:
print e
- 提取數(shù)據(jù)
為了方便提取數(shù)據(jù)作圖回溺,可以通過Python直接把數(shù)據(jù)寫入Excel混萝,也可以復(fù)制MySQL的查詢結(jié)果到Excel中萍恕。
![MySQL查詢結(jié)果][1]
復(fù)制到Excel時逸嘀,為了防止亂碼允粤,粘貼時選擇“僅保留文字”方式。
![粘貼到Excel中][2]
-2016年10月31日
[1]: http://img.mukewang.com/581746c600016a8109800439.png
[2]: http://img.mukewang.com/581746f90001c6d107800461.png