数据库实践

数据库有很多种,这里主要介绍SQLite和MongoDB。

SQLite:

安装

SQLite3 可使用 sqlite3 模块与 Python 进行集成。sqlite3 模块是由 Gerhard Haring 编写的。它提供了一个与 PEP 249 描述的 DB-API 2.0 规范兼容的 SQL 接口。您不需要单独安装该模块,因为 Python 2.5.x 以上版本默认自带了该模块。

为了使用 sqlite3 模块,您首先必须创建一个表示数据库的连接对象,然后您可以有选择地创建光标对象,这将帮助您执行所有的 SQL 语句。

具体可查看https://www.runoob.com/sqlite/sqlite-python.html

MongoDB:

可通过pip安装

https://www.runoob.com/python3/python-mongodb.html

数据库的最重要的就是要创建数据库与连接数据库,这些首要的工作做好再做数据库的操作就是一些函数的调用问题了。

 首先我们将中国排名网的爬取结果保存到csv中

我们运用这一个函数

def saveascsv(filename,data):
    FormData = pandas.DataFrame(data)
    FormData.columns = ["排名", "学校名称", "省市", "总分", "生涯质量", "培养结果","社会声誉", "科研规模", "科研质量", "顶尖成果", "顶尖人才", "科技服务", "产学研合作", "成果转化"]
    FormData.to_csv(filename,encoding='utf-8',index=0)
    print('保存完成')

保存成为csv结果如下:

 使用sql数据库:

将想要的数据插入到数据库中

import sqlite3
import pandas as pd
import numpy as np
conn = sqlite3.connect('db2018310143005.db')
print("Opened database successfully")
df=pd.read_csv('pm1.csv',encoding='utf-8')
x=df[['排名','学校名称','省市','总分','成果转化']]
x=x.values.tolist()
c = conn.cursor()
#c.execute('''CREATE TABLE pm2 (pm,name,sf,zf,cgzs)''')
c.executemany("INSERT INTO pm2(pm,name,sf,zf,cgzs) VALUES (?,?,?,?,?)",x)
c.commit()
c.close()

c.execute('SELECT * FROM pm2')
li = c.fetchall() #返回所有查询结果
for line in li:
for item in line:
print(item, end=' ')
print()
conn.close()

查看一下我们刚刚插入的数据:

要查找数据库中特定的值可以用到WHERE语句,比如说我要找出省份全是广东的大学:

cur.execute("SELECT * FROM p WHERE sf GLOB '广东*'")

再用fetchall语句将其获得,显示出来:

li = cur.fetchall()                  #返回所有查询结果
for line in li:
    for item in line:
        print(item, end=' ')
    print()
conn.close()

可以看到我们学校排到了287名

posted @ 2019-05-29 11:49  屁屁蛇  阅读(219)  评论(0)    收藏  举报