python读取MySQL数据库 传入format格式化变量(%s)
——作为一个CSDN博主,如何更直接的获取成就感?——python2调用远程服务器定时爬取CSDN访问量存入MySQL数据库并可视化系列教程(三、数据读取) [toc]
前言
题外话—— 一定不要将自己的数据库信息直接裸放的网上! 一定不要将自己的数据库信息直接裸放的网上! 一定不要将自己的数据库信息直接裸放的网上! 我刚才把GitHub上的仓库删了,也不知道有多少人clone过。 目前好在我这个云数据库是自己的,也没有什么重要的信息。
这个也是爬虫可视化系列教程的一个部分,因为我觉得标题起的不好,可能访问量就很难上去,所以我得想办法起个大家都可能用的上的标题。 这部分其实是数据可视化模块,也就是项目的后半部分——读取数据库。 详细的代码,可以直接从我的GitHub上clone,然后觉得有价值的话,记得点star哦~ https://github.com/kaixindelele/CSDN_pageviews_spider_tomysql_and_visualize 其中visualizer文件夹里是读取数据库和可视化的部分。
读取数据库:
配置环境:
- python2.7
- 安装pymysql、matplotlib等包
- 建立了自己的数据库信息,且数据库名称和我的一样,或者修改一下
表格形式:
column有num、blog_id等
上面的table_102是表格名字
代码分析
# -*- coding: utf-8 -*-
"""
Created on Tue Sep 04 20:36:33 2018
@author: lenovo
"""
import pymysql
#定义获取表信息的函数
def get_table_info(table_name,column,local):
# 连接本地已有的数据库
if(local == True):
db = pymysql.connect("localhost", "root", "你的密码!", 'csdn' ,charset="utf8")
# 或者是远程服务器
elif(local == False):
db = pymysql.connect("你的远程服务器IP地址!", "root", "你的密码!", 'csdn' ,charset="utf8")
# 获取cursor光标
cursor = db.cursor()
# 构建读取表格的sql语句
# select是选择指令,column是你需要拿的栏目,或者是表头,table_name是你选的表格名字
sql_info = 'select %s from %s order by blog_id'%(column,table_name)
# 执行sql语句
try:
cursor.execute(sql_info)
# 提交到数据库执行
db.commit()
#data拿到数据库的信息,但是格式好像是字符串的列表,字符串编码是unicode
data = cursor.fetchall()
print 'this request is sucessful!'
except Exception, e:
# 如果发生错误则回滚
db.rollback()
print e
print 'failed!'
# 关闭数据库连接
db.close()
#下面是将这些字符串信息整合起来?具体是啥我忘了,反正是对data数据变成utf8格式的字符串列表
#好像还要处理掉一个首尾的字符串多余的问题,这个到时候print 调试一下就好了
tem = []
try:
for d in data:
tem.append("".join(d).encode("utf-8"))
except Exception , e:
for d in data:
tem.append(str(list(d))[1:-1])
return tem
#调试这个代码的时候,直接执行,会执行下面的语句
#读取table_1表格,中的创建时间(create_time),然后data获取信息,打印出来,非常适合调试
if __name__ == '__main__':
table_name = 'table_1'
column = 'create_time'
data = get_table_info(table_name,column,local = False)
for d in data:
print d
print type(d)
#列表和元祖转成字符串,必须要用join函数~
# print ''.join(d)