数据挖掘Python 爬虫专栏Python数据采集与爬虫

Python数据挖掘02-MySQLdb的使用

2016-10-31  本文已影响67人  千山万水

MySQLdb是在Python中使用MySQL数据库的桥梁,有了这个桥梁,得以实现Python与MySQL的数据交换。由于Python与MySQL使用的编码可能不同,以及不同操作系统文字编码的区别,所以对于中文的处理需要特别注意。

  1. 读取中文数据库

# 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])
  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
  1. 提取数据

为了方便提取数据作图,可以通过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

上一篇下一篇

猜你喜欢

热点阅读