Python数据挖掘02-MySQLdb的使用
2016-10-31 本文已影响67人
千山万水
MySQLdb是在Python中使用MySQL数据库的桥梁,有了这个桥梁,得以实现Python与MySQL的数据交换。由于Python与MySQL使用的编码可能不同,以及不同操作系统文字编码的区别,所以对于中文的处理需要特别注意。
- 读取中文数据库
# 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])
- 向数据库中写入中文
# 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='陈经纬'
s=s.decode('utf-8').encode('utf-8')
# 如果是从网上抓取的编码为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中应使用result[1].encode('utf-8')
conn.commit()
cur.close()
conn.close()
except Exception as e:
print e
- 提取数据
为了方便提取数据作图,可以通过Python直接把数据写入Excel,也可以复制MySQL的查询结果到Excel中。
![MySQL查询结果][1]
复制到Excel时,为了防止乱码,粘贴时选择“仅保留文字”方式。
![粘贴到Excel中][2]
-2016年10月31日
[1]: http://img.mukewang.com/581746c600016a8109800439.png
[2]: http://img.mukewang.com/581746f90001c6d107800461.png