爬虫数据存储(12. 数据库存储)

el/2024/5/21 21:29:40

Mysql数据操作方法

  • pymysql常用方法和参数
  • 打开数据库
  • 创建Person表
  • 插入数据
  • 查询记录
  • 调用上述方法

pymysql常用方法和参数

  1. connect方法:连接数据库,根据连接的数据库类型不同,该函数参数也不同,赶回Connection对象
  2. cursor方法:获取操作数据库的Cursor对象。cursor方法属于Connection对象
  3. execute方法:用于执行SQL语句,该方法属于Cursor对象
  4. commit方法:在修改数据库后,需要调用该方法提交对数据库的修改,connmit方法属于Cursor对象
  5. rollback方法:如果修改数据库失败,一般需要调用该方法进行回滚,数据库恢复

打开数据库

from pymysql import *
import json
import pymysql
# 打开数据库,给参数
# test为库名
def connectDB():db=pymysql.connect(host='localhost', user='root', password='MYSQL1', database='test')return db

创建Person表

# 创建person表
def createTable(db):# 获取Cursor对象(游标)cursor = db.cursor()sql = '''CREATE TABLE persons(id INT PRIMARY KEY NOT NULL,name    TEXT NOT NULL,age     INT NOT NULL,address     CHAR(50),salary      REAL);'''try:# 执行创建表语句cursor.execute(sql)# 提交到数据库执行db.commit()return Trueexcept:# 如果发生错误,回滚db.rollback()return False

插入数据

# 向person表中插入4条数据
def insertRecords(db):cursor = db.cursor()try:# 首先将以前插入的记录全部删除cursor.execute('DELETE FROM persons')# 下面的几条语句想person表中插入4条记录cursor.execute("INSERT INTO persons (id,name,age,address,salary) \VALUES (1, 'Paul', 32, 'California', 20000.00 )");cursor.execute("INSERT INTO persons (id,name,age,address,salary) \VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");cursor.execute("INSERT INTO persons (id,name,age,address,salary) \VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");cursor.execute("INSERT INTO persons (id,name,age,address,salary) \VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");# 提交到数据库执行db.commit()return Trueexcept Exception as e:print(e)# 如果发生错误则回滚db.rollback()return False

查询记录

降序查询表中记录,并且用json格式存储

# 查询person表中的全部记录,并按age字段降序排列
def selectRecords(db):cursor=db.cursor()sql = 'SELECT name,age,salary FROM persons ORDER BY age DESC'cursor.execute(sql)# 调用fetchall方法获取全部记录results = cursor.fetchall()# 输出查询结果print(results)# 下面的代码将查询结果重新组织成其他形式fields = ['name','age','salary']records = []for row in results:records.append(dict(zip(fields,row)))return json.dumps(records)

调用上述方法

db = connectDB()if createTable(db):print('成功创建peroson表')
else:print('创建person表失败')if insertRecords(db):print('成功插入记录')
else:print('插入记录失败')print(selectRecords(db))
db.close()

http://www.ngui.cc/el/5281659.html

相关文章

爬虫高级应用(13. 抓取异步数据)

抓取异步数据 主要内容:关于异步传输AJAX什么是AJAX?AJAX基本原理 AJAX服务端请求数据案例实战案例:抓取某东图书评价 主要内容: 什么是异步数据加载AJAX的基本概念如何获取异步数据使用的URL抓取异步数据项目实战:分…

数据结构 第3章 栈和队列

第三章 栈和队列 数据结构—栈思维导图强化练习 数据结构—队列思维导图强化练习 栈和队列的应用思维导图强化练习 特殊矩阵的压缩存储思维导图强化练习 数据结构—栈 思维导图 强化练习 3.1.4 8.向一个栈顶指针为top的链栈(不带头结点)中插入一个x结点…

爬虫高级应用(14. 可见即可爬Selenium)

本章主要内容 1、安装Selenium和WebDriver 2、Selenium的基本使用方法 3、查找节点 4、节点交互 5、管理Cookie 6、执行JavaScript代码 7、改变节点属性值Selenium的主要功能: 1、打开浏览器 2、获取浏览器页面的特定内容 3、控制浏览器页面上的空间,如…

基于javacc设计Cb编译器《自制编译器》

目录 1.引言2.cbc编译器的环境配置3.代码分析3.1 词法分析3.1.1正则表达式的扫描器3.1.2 TOKEN命令 4.JavaCC制作解析器4.1 JavaCC的语法描述4.2 JavaCC的EBNF表示法 5.语法分析6.抽象语法树6.1 抽象语法树的构成 7.语义分析7.1变量引用的消解7.2类型名称的消解7.3 类型定义检查…

Python每日笔记合集

目录 >> Python每日笔记—目录 << >> Python每日笔记—Day01 数据类型 << >> Python每日笔记—Day02 运算符 << >> Python每日笔记—Day03 循环字符串 << >> Python每日笔记—Day04 字符串补充 << >&…

软件测试 | 知识理论大纲

什么是软件测试 在规定的条件下,对程序进行操作,从而发现错误,对软件质量进行评估的过程。 软件测试的目的 以最少的人力、物力、时间找到软件的缺陷,并修改从而规避商业风险。 软件测试的定义 使用人工和自动手段来运行和测试某个系统的过程,目的在于检验是否满足了…

为什么要使用href=”javascript:void(0);”

href”javascript:void(0);” 这个的含义是&#xff0c;让超链接去执行一个js函数&#xff0c;而不是去跳转到一个地址&#xff0c; 而void(0)表示一个空的方法&#xff0c;也就是不执行js函数。 为什么要使用href”javascript:void(0);” javascript:是伪协议&#xff0c;表示…

记录用vue-seamless-scroll实现列表无缝滚动

1.安装&#xff1a;npm install vue-seamless-scroll --save 2.导入 import vueSeamlessScroll from vue-seamless-scroll // 无缝滚动组件 components: {vueSeamlessScroll},3.配置初始值 computed: {// 监听属性 类似于data概念defaultOption () {return {step: 0.4, // 数值…

记录解决echarts文字显示不清晰问题

最近在用echarts时&#xff0c;遇见文字及图例失真、不清晰问题&#xff0c;特此记录 // 方法一&#xff1a; this.chart this.$echarts.init(document.getElementById(supplierContentChart), null, {renderer: svg}) // 采用svg渲染&#xff0c;比canvans清晰度高// 方法二…

记录Git每次进入都需要输入用户名和密码的问题解决

方法一&#xff1a; .gitconfig 文件中添加[credential] helper store方法二&#xff1a; 设置记住密码&#xff08;默认15分钟&#xff09;&#xff1a; git config –global credential.helper cache 如果想自己设置时间&#xff0c;可以这样做&#xff1a; git config cr…